This is a major milestone in Wicket history. Since Wicket became open source, this is the first Wicket release not created by me. Instead, Frank Bille has taken the torch and crafted this release for the community. Congratulations Frank!

Here are the release notes:

Apache Wicket 1.3.0-beta4

This is the fourth beta for Apache Wicket we have prepared for your pleasure. It contains over 120 fixes to issues with previous releases and todo items we have cleared.

In this announcement:

  • Apache Wicket
  • This release
  • Portlet support
  • Migrating from 1.2
  • Downloading the release
  • Validating the release
  • Reporting bugs

Eager people click here to download the distribution, others can read further:

We thank you for your patience and support. Given the current list of remaining issues and the fact that we have just accepted portlet support back in, we think a fifth beta release is necessary. But that is no excuse for not giving this fourth installment a test drive!

The Wicket Team

Apache Wicket

Apache Wicket is a component oriented Java web application framework. With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again. Swap the boilerplate, complex debugging and brittle code for powerful, reusable components written with plain Java and HTML.

Our migration to a top level project is now completed and you can find our website and documentation here:

This release

This release is the fourth in a series of beta releases until we feel confident to finalize Wicket 1.3. This is called a beta because we don’t have fixed all bugs, and probably haven’t found them all either.

Portlet support

A new feature in this beta4 release is the merge of Ate Douma’s portlet branch into trunk. This reintroduces portlet support in Wicket.

Migrating from 1.2

If you are coming from Wicket 1.2, you really want to read our migration guide, found on the wiki:

Downloading the release

You can download the release from the official Apache mirror system, and you can find it through the following link:

For the Maven and Ivy fans out there: update your pom’s to the following, and everything will be downloaded automatically:


Substitute the artifact ID with the projects of your liking to get the other projects.

Please note that we don’t prescribe a Logging implementation for SLF4J. You need to specify yourself which one you prefer. Read more about SLF4J here:

Validating the release

The release has been signed by Frank Bille, your release manager for today. The public key can be found in the KEYS file in the download area. Download the KEYS file only from the Apache website.

Instructions on how to validate the release can be found here:

Reporting bugs

In case you do encounter a bug, we would appreciate a report in our JIRA:

The distribution

In the distribution you will find a README. The README contains instructions on how to build from source yourself and a list of all things that have been fixed, added and/or removed since the first beta release.

Release Notes – Wicket – Version 1.3.0-beta4


  • [WICKET-349] – ListView can’t undo changes to model
  • [WICKET-470] – AjaxFormComponentUpdatingBehavior won’t work for RadioChoices
  • [WICKET-497] – For stateless mounted page incorrect url is generated
  • [WICKET-520] – Escape doesn’t work for AjaxEditableLabel in Firefox
  • [WICKET-572] – replacing tr using ajax does not work in safari
  • [WICKET-611] – AbstractRequestTargetUrlCodingStrategy ignores query parameters if there is no parameter in the path
  • [WICKET-631] – Resource.getParameters() empty when resource is mounted
  • [WICKET-635] – FormTester Does Not Properly Handle DropDownChoice With Null Model
  • [WICKET-640] – modal window close button does not cancel the event after closing the window
  • [WICKET-685] – ReloadingWicketFilter not working with markup inheritance
  • [WICKET-705] – StringValue javadoc incorrect regrading conversion to checked exception
  • [WICKET-707] – Invoking a request listener on a page returns an Expired Error page
  • [WICKET-722] – IndicatingAjaxFallbackLink does not remove indicator if the link itself is added via ajax
  • [WICKET-728] – WicketTester could not handle Multipart form without upload
  • [WICKET-735] – SqlTimestampConverter and it’s Date and Time friends die on null and other breakage.
  • [WICKET-745] – AbstractAjaxTimerBehavior triggered more than expected after a new Ajax rendering
  • [WICKET-756] – FormComponent.getValue uses equals instead of == to compare NO_RAW_INPUT
  • [WICKET-775] – Buggy behaviour in FormComponentPanel.setRequired(boolean)
  • [WICKET-782] – Select doesn’t validate ‘Required’
  • [WICKET-796] – setresponsepage() does not properly redirect from ajax requests
  • [WICKET-807] – MockHttpServletRequest.addFile does not work with binary files
  • [WICKET-819] – DefaultButtonImageResource’s fontAttributes field isn’t serializable
  • [WICKET-824] – Session id encoding problem in cookie-less mode
  • [WICKET-826] – No scrolling behaviour of source code viewer in IE 6
  • [WICKET-836] – feedback panels not being updated when inside repeaters
  • [WICKET-842] – is broken again…
  • [WICKET-846] – Javadocs for AbstractDefaultAjaxBehaviorPrecondition#getSuccessScript() and #getPreconditionScript() are swapped
  • [WICKET-849] – Bad multiple select display with DatePicker and ajax debug
  • [WICKET-851] – WicketTester unusable after subsequent startPage(Page) call
  • [WICKET-856] – add dependency slf4j-log4j12 to wicket-quickstart
  • [WICKET-864] – HttpServletResponse.encodeRedirectURL() missing in WicketFilter
  • [WICKET-869] – Back button processing doesn’t work in Opera
  • [WICKET-870] – ignore white space in web.xml filter, filtermapping
  • [WICKET-871] – Markup hirarchy gets messed up when value of attribute ‘background’ is a relative path
  • [WICKET-872] – Typo in org.apache.wicket.markup.html.tree.res.tree.js causes AJAX tree node addition failures
  • [WICKET-874] – Reloading servlet doing way too much reloading
  • [WICKET-877] – stateless page + form + bookmark = trouble
  • [WICKET-878] – IllegalStateException accessing Session.get() from own Resource implementation
  • [WICKET-881] – AbstractChoice not taking into account html escape settings
  • [WICKET-882] – RefreshingView should call super.onBeforeRender after it refreshed it’s items.
  • [WICKET-883] – Modification Watcher Task Log
  • [WICKET-885] – ResourceSettings#getStringResourceLoaders throws an ArrayStoreException
  • [WICKET-886] – InlineFrame with null PageMap raises exception
  • [WICKET-887] – Unable to find InlineFrames when inside ListViews
  • [WICKET-889] – Automatic multi-window support drops URL fragment identifier
  • [WICKET-890] – Modal window causes session expires
  • [WICKET-892] – RefreshingView only gets rendered when TreeTable node is opened twice
  • [WICKET-893] – Relative urls are broken if there is a + in parameter
  • [WICKET-894] – setStripComments corrupts other HTML tags
  • [WICKET-895] – If a form includes a DataTable with AjaxEditableLabels and the form should be refresh an exception occurs when a user switches between a changed label to another
  • [WICKET-896] – wrong redirect BrowserInfoPage and mounted Pages
  • [WICKET-897] – WicketSessionFilter doesn’t work with 1.3
  • [WICKET-899] – Authentication example fails with “PasswordTextField does not support cookies”
  • [WICKET-903] – WicketServlet no longer sets application on current thread
  • [WICKET-906] – It is impossible to inject primitives
  • [WICKET-908] – There is no way to specify what exceptions to log in RequestCycle
  • [WICKET-909] – onBeforeRender not called on ModalWindow contents
  • [WICKET-913] – PopupCloseLink broken with REDIRECT_TO_RENDER strategy
  • [WICKET-914] – Tree not “redrawn” when resetting root node
  • [WICKET-922] – Inconsistent use of Button vs. IFormSubmittingComponent
  • [WICKET-923] – Back button browser problem and ajax
  • [WICKET-929] – ExceptionErrorPage only works with WebResponse
  • [WICKET-934] – textfield strings are not trimmed when performing validation (conversion).
  • [WICKET-935] – AbstractRepeater#onBeforeRender should not be final
  • [WICKET-936] – Wicket:message texts do not change when session locale chages.
  • [WICKET-937] – Wicket Contrib Date Picker Not Picking Up Date Properly In CompoundPropertyModel
  • [WICKET-938] – Second and subsequent ajax component updates fail in Safari
  • [WICKET-946] – WebRequestCodingStrategy is not synchronized
  • [WICKET-951] – the javadoc of FormComponent.updateModel() states: ”.. it expect that the object is already converted through the convert() call”, but FormComponent.updateModel() documentation bug””
  • [WICKET-954] – Default button does not provide button name
  • [WICKET-956] – Bug In Wicket Listing Using DataTables
  • [WICKET-960] – FilteredAbstractColumn unary constructor expects Model instead of IModel
  • [WICKET-965] – ReloadingWicketFilter gives ClassCastException with page hierarchy involved
  • [WICKET-973] – setRenderAllowed not called in Tree items
  • [WICKET-974] – Image#getResource always returns null even if there is a resource
  • [WICKET-976] – IndexedParamUrlCodingStrategy chokes inside appendParameters() on Stateless forms
  • [WICKET-977] – Static Pages -> Passing URI to a Wicket page == 404 Error
  • [WICKET-978] – in quickstart archetype uses old wicket package name
  • [WICKET-981] – NPE in Component.remove(final IBehavior behavior)
  • [WICKET-984] – MockWebApplication should use PageFactory from given WebApplication.
  • [WICKET-985] – AjaxFallbackDefaultDataTable in a border fails
  • [WICKET-987] – Stripping javascript comments and whitespace breaks application when using prototype library
  • [WICKET-990] – Localizer complains about component not being added to the page when the component is a page
  • [WICKET-993] – wicket:enclosure doesn’t work with multiple child components
  • [WICKET-994] – Ajax requests may happen before DOM is ready
  • [WICKET-997] – AjaxButton using null as the form in the onSubmit() callback
  • [WICKET-999] – DynamicWebResource function as StaticResource
  • [WICKET-1001] – Misleading EnclosureResolver javadoc and wiki
  • [WICKET-1013] – spring component injection leads to deserialization error (or page expiration)
  • [WICKET-1016] – ExternalLink doesn’t use model
  • [WICKET-1027] – Form.appendDefaultButtonField() appends invalid HTML
  • [WICKET-1036] – Session size is constantly increasing on setResponsePage(getPage())
  • [WICKET-1042] – setResponsePage(PageClass) doesn’t take current pagemap into account
  • [WICKET-1046] – FeedbackMessages don’t get cleaned up in an AJAX request when renderstrategy is REDIRECT_TO_RENDER
  • [WICKET-1050] – MarkupParser.removeComment() does not properly parse to end of HTML comment


  • [WICKET-544] – Refactor duplicate code into ConversionException
  • [WICKET-604] – ’ Wicket.Channel’ name is not accessible in ajax related classes
  • [WICKET-646] – Do not throw an error when image not found while testing
  • [WICKET-669] – AjaxEditableLabel needs Model for adding a IValidator
  • [WICKET-771] – Provide ResourceReference with ID attribute for filtering multiple includes
  • [WICKET-780] – Internal server error 500 unresolvable in Ajax Debug Window
  • [WICKET-795] – Easy access to final rendered page source
  • [WICKET-800] – PropertyVariableInterpolator should support escaping of the string ’${‘
  • [WICKET-843] – improve API documentation for getStatelessHint() method in org.apache.wicket.Component
  • [WICKET-845] – Label constructor
  • [WICKET-853] – Repaired invalid HTML markup produced by FilterToolbar
  • [WICKET-854] – ModalWindow.setTitle needs to accept a model
  • [WICKET-879] – reduce code in DatePicker.js (because it can be loaded multiple times per page)
  • [WICKET-880] – Option to align DatePicker to the left of icon
  • [WICKET-898] – JS namespace pollution in wicket-extensions
  • [WICKET-900] – [Patch]Allow to set a custom css to the calendar
  • [WICKET-907] – FeedbackMessage SUCCESS level?
  • [WICKET-927] – Deprecate Fragment constructors that dont take a markup provider
  • [WICKET-941] – Patch to fix layout and positioning issues for the maven generated wicket site
  • [WICKET-955] – Make wizard work with default button
  • [WICKET-961] – Add variables to ConversionException
  • [WICKET-962] – Ajax updates do not work on Components with wicket id that is not \d+ when within AbstractRepeater/RepeatingView
  • [WICKET-964] – provide direct access on output stream in resources
  • [WICKET-970] – Wicket Javadoc Standardization: org.apache.wicket.validation.*
  • [WICKET-971] – Wicket Javadoc Standardization:
  • [WICKET-986] – Wicket Javadoc Standardization: org.apache.wicket.util.value
  • [WICKET-998] – Remove obsolete attribute modifier
  • [WICKET-1000] – Wicket Javadoc Standardization: org.apache.wicket.time
  • [WICKET-1004] – Label associated with an open/close tag should still work
  • [WICKET-1009] – russian resource files
  • [WICKET-1034] – Allow Custom Javascript on AJAX Busy Indication
  • [WICKET-1041] – Fix a TODO for 1.3 at AjaxFormSubmitBehavior.onError()
  • [WICKET-1044] – Clarification of when children are added to Component tree for TabbedPanel

New Feature

  • [WICKET-480] – IHeaderResponse.renderOnUnLoadJavascript(String javascript);
  • [WICKET-806] – add month/year selection
  • [WICKET-832] – [Patch] add a UrlValidator
  • [WICKET-930] – Wrap Guice-Injector with proxying for Objects
  • [WICKET-939] – Make org.apache.wicket.markup.html.image work with ajax by adding either random or autoindex or??
  • [WICKET-944] – ehcache based MarkupCache (1.3)
  • [WICKET-979] – Wants yahoo calendar to be displayed on page by default (ie no popup)
  • [WICKET-983] – Merge the portlet support branch into the trunk
  • [WICKET-1030] – add support for CalendarGroup
  • [WICKET-1031] – add facilities to execute javascript code to further customize the YUI Calendar


  • [WICKET-858] – warning note when using DefaultDataTable
  • [WICKET-1023] – Release Wicket 1.3.0-beta4


  • [WICKET-804] – Need a “Getting Started/Creating a new Wicket project” guide