Apache Wicket 1.3 ================= This is the readme file for the Apache Wicket project. Apache Wicket is an open source, java, component based, 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. Apache Wicket can be found at: http://wicket.apache.org and is licensed under the Apache Software Foundation license, version 2.0. Contents -------- - License - Java/Application server requirements - What is in this package - Getting started - Dependencies - Building Wicket from source - Migrating from 1.2 - Getting help - This release License ------- Wicket is distributed under the terms of the Apache Software Foundation license, version 2.0. The text is included in the file LICENSE.txt in the root of the project. Java/Application server requirements ------------------------------------ Wicket requires at least Java 1.4. The application server for running your web application should adhere to the servlet specification version 2.3 or newer. What is in this package ----------------------- The archive you just downloaded and unpacked contains the jars of the core projects of Wicket. If you are just starting out, you probably only need to include wicket-x.jar, where x stands for the version. As a rule, use just the jars you need. Here is a list of projects in this distribution and what they do. - wicket: the core project, includes the framework and basic components; - wicket-extensions: contains utilities and more specialized components; - wicket-auth-roles: a basic authorization package based on roles; - wicket-datetime: contains date/ time specific components such as a date picker; - wicket-jmx: registers JMX beans for managing things like your Wicket configuration and markup cache; - wicket-objectssizeof-agent: utility for making better estimates of object sizes in the JVM - most people probably never need this; - wicket-ioc: base project for IoC (aka DI) implementations such as Spring and Guice; - wicket-spring: support project for using Spring with Wicket; - wicket-spring-annot: supports including Spring managed dependencies through using @SpringBean annotations - recommended for most users who use Spring and can use JDK 5 and up; - wicket-guice: support project for using Google Guice with Wicket; - wicket-velocity: contains special components for rendering Velocity templates using Wicket components - most people probably don't need this, but it can be neat when you want to do CMS-like things; - wicket-examples: contains a basic component reference and many examples of how to use Wicket and Wicket components, including examples for sub projects such as wicket-spring, wicket-velocity and wicket-auth-roles. Getting started --------------- The Wicket project has several projects where you can learn from, and get started quickly: - wicket-examples: shows all components in short usage examples, also available live on: http://www.wicketstuff.org/wicket13 - wicket-quickstart: provides a skeleton project for use in NetBeans, Eclipse, IntelliJ IDEA and other major IDE's, without having to configure anything yourself. You can copy'n'paste the examples from the website into your pages and see them running on your own box. - qwicket (http://www.antwerkz.com/qwicket): Qwicket is a quickstart application for the wicket framework. Its intent is to provide a rapid method for creating a new wicket project with the basic infrastructure in place so that you can quickly get to the meat of your application rather than mucking with the plumbing of a wicket application. Currently, the system only supports spring and hibernate built with ant. - AppFuse light - Wicket edition (https://appfuse-light.dev.java.net/) AppFuse Light is a can all do it all quickstart setup for almost all possible permutations for building Java web applications and ORM technologies. It features over 60 downloads and combines each available web application framework with Hibernate, iBatis, JDO (JPOX), OJB and Spring JDBC. Dependencies ------------ The easiest way of getting the dependencies of your Wicket based projects right is to use Maven with your projects and include the wicket dependencies you want like is outlined in the quickstart. Maven will then take care of including the appropriate dependencies. If you do not want to use maven, here is a break down of the dependencies you need. - wicket and wicket-extensions: You only need to include the Servlet API (2.3, just for compiling) and the SLF4J logging implementation you want. You cannot use Wicket without adding a SLF4J logging implementation to your classpath. Most people use log4j. If you do, just include slf4j-log4j12.jar on your classpath to get Wicket to use log4j too. If you want to use commons-logging or JDK14 logging or something else, please see the SLF4J site (http://www.slf4j.org/) for more information. As the following projects all depend on wicket, they inherit these dependencies. - wicket-auth-roles, wicket-jmx and wicket-objectssize-agent: JDK 5 or up (though JMX can be run on 1.4 with an extension package if you really need to). - wicket-datetime: Joda-Time 1.4 (http://joda-time.sourceforge.net/) - wicket-velocity: Apache Velocity 1.4 (http://velocity.apache.org/) and it's dependencies (it ships a velocity-deps jar for convenience) - wicket-ioc: gclib nodep 2.1.3 (http://cglib.sourceforge.net/) and asm 1.5.3 (http://asm.objectweb.org/) - wicket-spring: wicket-ioc and Spring (http://www.springframework.org/) and it's dependencies - wicket-spring-annots: wicket-spring and needs to run on JDK 5 or up - wicket-guice: Google Guice (http://code.google.com/p/google-guice/) and runs on JDK 5 or up. - wicket-examples: All of the above. Building Wicket from source --------------------------- The Wicket distribution contains the final Wicket jar. You can use this directly in your applications. The Wicket project also uploads the source-jars and JavaDoc jars together with the final jar to the Maven repository used by the Maven build tool. So there is actually no specific need to build Wicket yourself from the distribution. Building using maven 2, change the working directory to src and either do: - mvn package creates wicket-x.y.z.jar in target/ subdirectory. - mvn install creates wicket-x.y.z.jar in target/ subdirectory and installs the file into your local repository for use in other projects. Migrating from 1.2 ------------------ There is a migration guide available on our Wiki: http://cwiki.apache.org/WICKET/migrate-13.html Getting help ------------ - Read the online documentation available on our website (http://wicket.apache.org) - Read the migration guide (http://cwiki.apache.org/WICKET/migrate-13.html) - Read the mailing archives available on Nabble, GMane and Apache - Send a complete message containing your problem, stacktrace and problem you're trying to solve to the user list (users@wicket.apache.org) - Ask a question on IRC at freenode.net, channel ##wicket This Release ------------ This release has the following improvements over the previous one: Release Notes - Wicket - Version 1.3.0-beta4 ** Bug * [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-702] - MockWebApplication doesn't redirect properly to mounted pages under RestartResponseAtInterceptPageException * [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-746] - Thread synchronization problems in FilePageStore * [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] - log4j.properties 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 ** Improvement * [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-952] - provide the means to generate site with maven-site-plugin * [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: org.apache.wicket.util.watch * [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 ** Task * [WICKET-858] - warning note when using DefaultDataTable * [WICKET-1023] - Release Wicket 1.3.0-beta4 ** Wish * [WICKET-804] - Need a "Getting Started/Creating a new Wicket project" guide