blob: 0023d7e4108e40839c761dee1697d856578f2610 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">
<title> 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>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick.css"/>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick-theme.css"/>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.slick/1.5.5/slick.min.js"></script>
</head>
<body class="index">
<div class="header default">
<div class="l-container">
<nav class="mainmenu">
<div class="nav-logo">
<a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
<div class="nav-container">
<!-- /start/quickstart.html || / -->
<a href="/start/quickstart.html" class=" nav-items">Quick Start</a>
<!-- /start/download.html || / -->
<a href="/start/download.html" class=" nav-items">Download</a>
<!-- /learn || / -->
<a href="/learn" class=" nav-items">Documentation</a>
<!-- /help || / -->
<a href="/help" class=" nav-items">Support</a>
<!-- /contribute || / -->
<a href="/contribute" class=" nav-items">Contribute</a>
<!-- /community || / -->
<a href="/community" class=" nav-items">Community</a>
<!-- /apache || / -->
<a href="/apache" class=" nav-items">Apache</a>
</div>
<div class="nav-container ">
<a href="https://github.com/apache/wicket" target="_blank"><i class="fa fa-github nav-items"></i></a>
<a href="https://twitter.com/apache_wicket" target="_blank"><i class="fa fa-twitter nav-items"></i></a>
<a href="https://builtwithwicket.tumblr.com" target="_blank"><i class="fa fa-tumblr nav-items"></i></a>
</div>
</nav>
</div>
</div>
<main>
<div class="l-container">
<header class="l-full preamble">
<h1></h1>
</header>
<section class="toc left post index">
<div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#"><span class="toc-number">1</span> <span class="toc-text">Getting Started with Wicket 10</span></a></li></ul></div>
</section>
<section>
<div class="l-full">
<p class="meta"></p>
<div class="l-full l-first preamble">
<a class="acevent"></a>
<br />
<h1 id="introduction" class="announce">Announcing Apache Wicket <span class="color-brand">1</span><span class="color-brand" style="font-family: Wicket font;font-size: 46px;">0</span> : build modern web applications with Java!</h1>
<div>
<img src="/img/wicket-9-sun.png" alt="Apache Wicket" class="responsive-logo" />
</div>
<p>
The Apache Wicket project announces the 10th major release of the open source Java web framework servicing websites and applications across the globe since 2004.
Built on top of Java 17, this version of Wicket brings web development into the modern Java world, offering a fundamental tool to write modern and robust web applications.
</p>
</div>
<div class="l-first">
<div class="l-full">
<h3>Use Java to build modern and mantainable web applications</h3>
<p>
Building robust and manteinable web application is not a trivial task, especially for Java developers who might feel lost with modern web technologies. With Wicket you can use the rock-solid Java platform to reach this goal without the burden of the complexity that comes with modern JavaScript development stack.
</p>
<p>
Using Wicket and other familiar tools like Apache Maven you can finally make the most of modern UI frameworks and JavaScript libraries without leaving the Java ecosystem!
</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-half">
<h3>Stay up to date with the Java release cycle</h3>
<p>
Wicket 10 is built on top of Java 17 and is compatible with Java 21. In addtion Wicket takes part in the <a href="https://wiki.openjdk.java.net/display/quality/Quality+Outreach" target="_blank">OpenJDK Quality Outreach</a> to further improve the effort to test compatibility with both the latest OpenJDK release and the Early Access release.
</p>
</div>
<div class="l-half">
<h3>Fast migration with OpenRewrite</h3>
<p>
Wicket 10 comes with a migration tool based on OpenRewrite to speed up migration from Wicket 9 and avoid repetitive and error-prone manual changes to your code. For more details on this tool see <a href="https://cwiki.apache.org/confluence/display/WICKET/Migration+to+Wicket+10.0#MigrationtoWicket10.0-AddmigrationrecipestoWicket10WICKET-7029">migration guide</a>.
</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-full">
<h3>Protect your web apps with Content Security Policy (CSP)</h3>
<p>
As the number of security threats grows, it's crucial for web applications to adopt the latest security standards and countermeasures. CSP is a modern standard that allows applications to declare approved origins of content (such as JavaScript, CSS, images, etc...) for the browser to load. Constructing a safe and at the same time complete CSP can be challenging.
You either risk leaving holes in the defense of your application or you break certain functionality. Protecting against unwanted inline scripts is the most important target to attain. In CSP this is called 'unsafe-inline' and it's the most common cause of cross-site scripting vulnerabilities.
</p>
<p>
Wicket 10 comes with full support for CSP and does not need any unsafe directives. Wicket will automatically add a nonce to every header contribution and whitelist this nonce. This allows for flexible loading of resources without the need for a complex CSP. Of course it is possible to modify and customize the CSP, add additional directives or disable it entirely. Lookup our <a href="http://wicket.apache.org/learn/#guide" target="_blank">documentation</a> for more information.
</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-half">
<h2>Getting Started with Wicket 10</h2>
<p>
It is very easy to get started with Wicket: use our <a href="/start/quickstart.html">quick-start wizard</a> or
use one of the options below.
</p>
</div>
<div class="l-half">
<h3>Migrating to Wicket 10</h3>
<p>
When you migrate from a previous Wicket version to Wicket 10, a full list of changes and migrations is available at the following page:
</p>
<p>
<a href="https://s.apache.org/wicket10migrate">https://s.apache.org/wicket10migrate</a>
</p>
<p>
Please consult this migration guide when you are moving towards Wicket 10.
</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-half">
<h3>Download using Apache Maven</h3>
<p>
With Apache Maven update your dependency to (and don't forget to
update any other dependencies on Wicket projects to the same version):
</p>
<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.wicket<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>wicket-core<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>10.0.0-M2<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></figure>
</div>
<div class="l-half">
<h3>Download sources/binaries manually</h3>
<p>
You can download and build the distribution yourself, or use our
convenient binary package:
</p>
<ul>
<li>Source: <a href="http://www.apache.org/dyn/closer.cgi/wicket/10.0.0-M2">10.0.0-M2 source download</a></li>
<li>Binary: <a href="http://www.apache.org/dyn/closer.cgi/wicket/10.0.0-M2/binaries">10.0.0-M2 binary download</a></li>
</ul>
</div>
</div>
<hr />
<div class="l-full l-first preamble">
<h1 id="introduction">Introducing Apache&nbsp;Wicket</h1>
<p>Invented in 2004, Wicket is one of the few survivors of the Java
serverside web framework wars of the mid 2000's. Wicket is an open
source, component oriented, serverside, Java web application framework.
With a history of over a decade, it is still going strong and has a
solid future ahead. Learn why you should consider Wicket for your next
web application.</p>
</div>
<div class="l-first l-flex">
<div class="l-one-third">
<img src="/img/java-wicket-html5.png" class="l-full" />
<h3>Just Java &amp; HTML</h3>
<p>Leverage what you know about Java or your favourite HTML
editor to write Wicket applications. With pure Java code and HTML
markup Wicket is the go-to web framework for purists.</p>
</div>
<div class="l-one-third">
<img src="/img/wicket-safe.png" class="l-full" />
<h3>Secure by Default</h3>
<p>URLs do not expose sensitive information and all component paths are
session-relative. Wicket keeps your model private except those parts
you explicitly expose.</p>
</div>
<div class="l-one-third">
<img src="/img/wicket-components.png" class="l-full" />
<h3>AJAX Components</h3>
<p>Write Ajax applications without having to write a single line
of JavaScript code. Wicket's Ajax functionality makes it trivial
to update selected parts of a UI, and comes with a great selection
of basic Ajax components.</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-one-third">
<h3>Open Source with Apache License</h3>
<p>Since its inception in 2004 Wicket has been an open source
project and remains available under one of the most permissive
licenses: the Apache Software License.</p>
</div>
<div class="l-one-third">
<h3>Maintainable code</h3>
<p>Pages and Components in Wicket are real Java objects that support
encapsulation, inheritance and events. Create high level components
with ease and bundle its stylesheets, JavaScript and other resources
into one reusable package.</p>
</div>
<div class="l-one-third">
<h3>Internationalized to take on the world</h3>
<p>With support of over 25 languages out-of-the-box, Wicket let's
you get started in your own language, or a second language with no
effort. You can provide alternative languages on the application,
page, or even component level.</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-one-third">
<h3>Multi-tab and window support</h3>
<p>No more pain while keeping tabs on multiple tabs and windows.
Wicket's automatic state storage ensures that your users can open
pages in new tabs and windows without causing problems.</p>
</div>
<div class="l-two-third">
<h3>Work with JavaScript and CSS</h3>
<p>Global JavaScript libraries and CSS styling mix properly with
component local JavaScript and CSS resources. You can use custom
component libraries that ship with default JavaScript behaviour and
CSS styling, without having to do anything yourself. Creating such
self-contained component libraries is as easy as creating a JAR
file.</p>
</div>
</div>
<div class="l-first l-flex">
<div class="l-one-third">
<h3>Test your pages and components</h3>
<p>With WicketTester you can achieve testing coverage your QA
department can only dream of. Test your pages without having to run
inside a browser, or start a container. Test your components directly,
check their rendered markup tags, attributes and contents with ease.</p>
</div>
<div class="l-one-third">
<h3>Injection support</h3>
<p>Inject your services into your pages and components with the
technology of your choosing: Wicket provides integration with CDI
(JSR-305), Spring and Guice.</p>
</div>
<div class="l-one-third">
<h3>JavaEE integration</h3>
<p>If you are using the Web profile of JavaEE 6 or newer, you can
leverage JPA, EJBs, Bean Validation and CDI with Wicket's integrations
for these specifications.</p>
</div>
</div>
<div class="l-first">
</div>
<hr />
</div>
<article id="builtwithwicket" class="builtwithwicket">
<header class="preamble">
<h1 id="poweredby">Projects Using Apache Wicket</h1>
<p>
Many projects use Wicket but are not known for it.
Below you find a list of projects that are <a href="http://builtwithwicket.tumblr.com" rel="nofollow">Powered by Wicket</a>.
</p>
</header>
<article class="l-full">
<div class="builtwithwicket-slider"></div>
<br><br>
<p>
This list is generated from our Tumblr feed 'Built with Wicket'.
You can submit your own project to this list through
<a href="http://builtwithwicket.tumblr.com/submit" rel="nofollow">this form</a>.
</p>
</article>
<div class="l-first"></div>
<!-- Only display the blog image, title and post URL -->
<script type="text/javascript">
function randomIntFromInterval(min,max)
{
return Math.floor(Math.random()*(max-min+1)+min);
}
$.getJSON('./tumblr.json',
function(response) {
var posts = response.posts;
for(var postIndex in posts) {
var post = posts[postIndex];
var caption = jQuery('<div>' + post['photo-caption'] + '</div>').text().substring(0,150) + "...";
var newSlide = $('.builtwithwicket-slider').append(
'<div class="builtwithwicket-post">\n' +
' <img class="builtwithwicket-screenshot" data-lazy="' + post['photo-url-500'] + '">\n' +
' <p class="builtwithwicket-caption">' + caption + '</p>\n' +
' <a href="' + post['url'] + '" rel="nofollow">More</a>\n' +
'</div>');
}
$('.builtwithwicket-slider').slick({
arrows: true,
autoplay: true,
autoplaySpeed: 5000,
dots: true,
draggable: true,
infinite: true,
initialSlide: randomIntFromInterval(0, posts.length),
lazyLoad: 'ondemand',
pauseOnDotsHover: true,
responsive: [ {
breakpoint: 590,
settings: {
slidesToShow: 1,
slidesToScroll: 1
}
},
{
breakpoint: 960,
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
},
],
slidesToShow: 3,
slidesToScroll: 3,
swipe: true,
});
});
</script>
</article>
<article id="news" class="">
<div class="l-full l-first preamble">
<h1 id="news">News about Apache Wicket</h1>
<p>Get the latest updates to releases, security bulletins, community
news and more.</p>
</div>
<div class="l-flex">
<div class="l-two-third" >
<article>
<h2>Apache Wicket 9.16.0 released</h2>
<small>26 Nov 2023</small>
<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.16.0!</p>
<p>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 https://wicket.apache.org</p>
<p>This release marks another minor release of Wicket 9. We
use semantic versioning for the development of Wicket, and as such no
API breaks are present in this release compared to 9.0.0.</p>
<h2 id="using-this-release">Using this release</h2>
<p>With Apache Maven update your dependency to (and don’t forget to
update any other dependencies on Wicket projects to the same version):</p>
<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.wicket<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>wicket-core<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>9.16.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></figure>
<p>Or download and build the distribution yourself, or use our
convenience binary package you can find here:</p>
<ul>
<li>Download: http://wicket.apache.org/start/wicket-9.x.html#manually</li>
</ul>
<a href="/news/2023/11/26/wicket-9.16.0-released.html">Read more...</a>
</article>
<article>
<h2>Apache Wicket 10.0.0-M2 released</h2>
<small>16 Oct 2023</small>
<p>The Apache Wicket PMC is proud to announce Apache Wicket 10.0.0-M2!</p>
<p>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 https://wicket.apache.org</p>
<p>This release marks another minor release of Wicket 10. We
use semantic versioning for the development of Wicket, and as such no
API breaks are present in this release compared to 10.0.0.</p>
<h2 id="new-and-noteworthy">New and noteworthy</h2>
<p>In order to improve JPMS adoption, this release introduces the new module
wicket-tester containing common classes for unit testing.
Users of class WicketTester must now include this module as <strong>test</strong> dependency.</p>
<h2 id="using-this-release">Using this release</h2>
<p>With Apache Maven update your dependency to (and don’t forget to
update any other dependencies on Wicket projects to the same version):</p>
<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependency&gt;</span>
<span class="nt">&lt;groupId&gt;</span>org.apache.wicket<span class="nt">&lt;/groupId&gt;</span>
<span class="nt">&lt;artifactId&gt;</span>wicket-core<span class="nt">&lt;/artifactId&gt;</span>
<span class="nt">&lt;version&gt;</span>10.0.0-M2<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></figure>
<p>Or download and build the distribution yourself, or use our
convenience binary package you can find here:</p>
<ul>
<li>Download: http://wicket.apache.org/start/wicket-10.x.html#manually</li>
</ul>
<a href="/news/2023/10/16/wicket-10.0.0-M2-released.html">Read more...</a>
</article>
</div>
<div class="l-one-third news">
<h2>Older news</h2>
<p>See the <a href="/news">archives</a> for all news
articles concerning release, security and community updates.</p>
<p>Note that you can subscribe to our <a type="application/atom+xml"
title="Atom 1.0 feed" href="/atom.xml">RSS feed</a> to
get updates in your favorite RSS reader the moment they happen.</p>
<ul>
<li>
<h3>Apache Wicket 10.0.0-M2 released</h3>
<small>16 Oct 2023</small>
The Apache Wicket PMC is proud to announce Apache Wicket 10.0.0-M2! Apache Wicket is an open source Java component oriented web application framework that powers...
<a href="/news/2023/10/16/wicket-10.0.0-M2-released.html">more</a>
</li>
<li>
<h3>Apache Wicket 9.15.0 released</h3>
<small>18 Sep 2023</small>
The Apache Wicket PMC is proud to announce Apache Wicket 9.15.0! Apache Wicket is an open source Java component oriented web application framework that powers...
<a href="/news/2023/09/18/wicket-9.15.0-released.html">more</a>
</li>
<li>
<h3>Apache Wicket 10.0.0-M1 released</h3>
<small>17 Jun 2023</small>
The Apache Wicket PMC is proud to announce Apache Wicket 10.0.0-M1! Apache Wicket is an open source Java component oriented web application framework that powers...
<a href="/news/2023/06/17/wicket-10.0.0-M1-released.html">more</a>
</li>
<li>
<h3>Apache Wicket 9.14.0 released</h3>
<small>28 May 2023</small>
The Apache Wicket PMC is proud to announce Apache Wicket 9.14.0! Apache Wicket is an open source Java component oriented web application framework that powers...
<a href="/news/2023/05/28/wicket-9.14.0-released.html">more</a>
</li>
<li>
<h3>Apache Wicket 8.15.0 released</h3>
<small>02 May 2023</small>
The Apache Wicket PMC is proud to announce Apache Wicket 8.15.0! Apache Wicket is an open source Java component oriented web application framework that powers...
<a href="/news/2023/05/02/wicket-8.15.0-released.html">more</a>
</li>
</ul>
</div>
</div>
<div class="l-first"></div>
</article>
</section>
</div>
</main>
<footer>
<div class="l-container">
<div class="left">
<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
<div style="margin-top:12px;">Copyright © 2023 — 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>
</div>
</footer>
</body>
</html>