<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Apache Wicket v6.0.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-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2012/09/05/wicket-6.0.0-released.html -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket-white.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Apache Wicket v6.0.0 released</h1>
        </header>
        <section class="l-one-third right">
        </section>
        <section class="l-two-third left">
            <div class="l-full">
    <p class="meta">05 Sep 2012</p>
    <blockquote>
  <p>“With great pleasure we announce the availability of Apache Wicket 6.0.0”</p>
  <p>– Martijn Dashorst, Vice President, Apache Wicket</p>
</blockquote>
<p>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:</p>
<ul>
  <li>Out-of-the box JQuery integration</li>
  <li>Complete control over AJAX requests</li>
  <li>Improved event registration in browsers</li>
  <li>Support for large datasets in components</li>
  <li>Dependency management for client side javascript libraries</li>
  <li>Experimental support for websockets</li>
</ul>
<p>This release is available from the <a href="http://www.apache.org/dyn/closer.cgi/wicket/6.0.0">usual download location (wicket-6.0.0)</a>, or available through the Maven Central repository.</p>
<p>Additional features include a customizable client-side API, improved feedback messages, correct packaging for OSGi compatibility and improved initialization of plugins. Highlights include:</p>
<p>Java 6 required - This release moves the minimum required Java version to Java 6. This means that Wicket applications running on earlier Java versions meaning to upgrade, also need to upgrade their Java runtime.</p>
<p>Revamped Wicket AJAX now leverages JQuery - Wicket’s custom AJAX JavaScript library has been re-implemented using JQuery. This makes it easier to integrate JQuery plugins into Wicket applications. With the new AJAX implementation it is possible to provide your own version of JQuery should the need arise, or even to replace the whole Wicket client side AJAX implementation.</p>
<p>AJAX Attributes - With the new and improved AJAX implementation, you can alter any aspect of an AJAX request through AjaxRequestAttributes. For example you can specify that the request should be executed using POST instead of GET, or that the AJAX request should be multi-part, etc. See the migration guide or the JavaDoc of AjaxRequestAttributes for all possible options.</p>
<p>Browser event registration replaces inline events - Wicket now uses JavaScript event registration instead of inline attributes for AJAX components. This enables multiple event listeners to be attached to a markup tag, cleans up the rendered markup considerably and reduces the amount of generated markup.</p>
<p>IDataProvider now uses long instead of int - The <code class="language-plaintext highlighter-rouge">IDataProvider&lt;T&gt;</code> interface and implementations now use long instead of int for index and size parameters to better line up with the Java Persistence API and other persistency frameworks. Big data is now possible with Wicket!</p>
<p><code class="language-plaintext highlighter-rouge">${label}</code> replaces <code class="language-plaintext highlighter-rouge">${input}</code> in feedback messages - Previous Wicket versions used the input that was provided by users in error messages when validations failed. This led to error messages like “1234a is not a valid number”. In Wicket 6 the feedback messages use the label of the invalid form component instead. You can set the label by calling setLabel() on the form component. If no label is provided, Wicket defaults to displaying the component identifier. This changes the error message to “Phonenumber is not a valid number”.</p>
<p>Resources can declare dependencies - It is now much easier to create resource contributions with dependencies, for example a JQuery plugin can declare a dependency on JQuery and other resources such as embedded style sheets. Users of such resources don’t have to provide these dependencies themselves, and the dependencies are linked in the appropriate order.</p>
<p>Packaged resources will use minimized version automatically - When a minimized JavaScript resource is available (filename.min.js – add the .min part to the filename before the extension), Wicket will automatically use the minimized version when running in deployment mode, while using the non-minimized version for development mode.</p>
<p>OSGi compatible packaging - Wicket’s packaging has been made compatible with OSGi bundles by moving some classes to different packages. The full list can be found in our migration guide. This makes it much easier to deploy Wicket applications in an OSGi environment.</p>
<p>Experimental websocket implementations - This release also includes two experimental websocket implementations: one using Atmosphere as a bridge for browsers and containers that don’t support websockets natively and one for containers and browsers that have native websocket support.</p>
<p>The complete set of changes is available in the migration guide at <a href="http://s.apache.org/wicket-6.0-migration">http://s.apache.org/wicket-6.0-migration</a></p>
<h3 id="availability-and-oversight">Availability and Oversight</h3>
<p>As with all Apache products, Apache Wicket v6.0.0 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 source code, documentation, and related resources are available at http://wicket.apache.org/</p>
<p>“Apache”, “Wicket”, “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>
