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 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 source code and 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. You will find the source code here: - src/jdk-1.4 - wicket - wicket-extensions - wicket-datetime - wicket-spring - wicket-velocity - src/jdk-1.5 - wicket-examples - wicket-auth-roles - wicket-spring-annot - wicket-guice - wicket-jmx - wicket-objectssizeof-agent 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-rc1 ** Sub-task * [WICKET-1022] - Created new bug - ValueMap set to null ** Bug * [WICKET-330] - CheckBox incorrectly converts its model value when a custom Boolean converter is installed * [WICKET-336] - Inheritable model cannot be a wrap model * [WICKET-382] - Converter misusage/mangling in RadioChoice * [WICKET-487] - Buggy behaviour in PageMap.access(IPageMapEntry,int). Wicket1.2.4 * [WICKET-588] - continueToOriginalDestination / RestartResponseAtInterceptPageException with page parameters broken * [WICKET-605] - Stateless form skips page parameters * [WICKET-607] - Stateless forms don't work with QueryStringUrlCodingStrategy * [WICKET-642] - Need to escape select html option value * [WICKET-645] - Form with ajaxsubmitbutton won't submit after error * [WICKET-702] - MockWebApplication doesn't redirect properly to mounted pages under RestartResponseAtInterceptPageException * [WICKET-734] - Custom ILinkListener component causes error in cell on mounted page * [WICKET-746] - Thread synchronization problems in FilePageStore * [WICKET-855] - ModalWindow makes Internet Explorer 6 show an security warning dialog * [WICKET-901] - DatePicker#getConfigureYUIBasePath() is useless or never called * [WICKET-916] - inconsistent state after setting AjaxDebugModeEnabled to true in an AjaxRequest * [WICKET-920] - ExternalLink produces invalid html * [WICKET-950] - StatelessForm + QueryStringUrlCodingStrategy problem * [WICKET-953] - Session invalidateNow() does not immediate remove the session from disk * [WICKET-958] - Mounts ignored for PageExpiredErrorPage * [WICKET-972] - IndexedParamUrlCodingStrategy seems to have problems handling resources * [WICKET-988] - PropertyResolver map * [WICKET-991] - StringIndexOutOfBoundsException in ServletWebRequest.getRelativePathPrefixToWicketHandler * [WICKET-995] - getMarkupId generates ID which contains special characters which should be escaped or replaced * [WICKET-1011] - wicketShow and wicketHide don't check for existence of element before setting display * [WICKET-1014] - AjaxEditableChoiceLabel doesn't work in IE 6 * [WICKET-1015] - StringResourceModel does not escape interpolated properties * [WICKET-1028] - WebRequestCycle.getProcessor javadoc doesn't make sense * [WICKET-1037] - Text not visible in Wicket Ajax Debug window * [WICKET-1039] - parameters for Image never used when using a ResourceReference * [WICKET-1040] - setEnabled() does not work on YUI DateField * [WICKET-1047] - Amersand escaped twice for ResourceLink href * [WICKET-1051] - StyleSheetReference doesn't take style/locale into account * [WICKET-1061] - Can't enter data in any input field after closing modal window * [WICKET-1062] - LocalizedImageResource does not serialize locale/style fields * [WICKET-1065] - NullPointer in FileCleaner causes infinite loop * [WICKET-1071] - AjaxFormSubmitBehavior creates invalid HTML * [WICKET-1072] - Stateless pages bind to http session * [WICKET-1074] - Image resource parameters fail to output in src attribute * [WICKET-1075] - LocalizedImageResource: 'static' Resource lost after locale/style change * [WICKET-1077] - VisitChildren + IComponentResolver broken in beta 4? * [WICKET-1080] - StringResourceModel.toString() misbehavior * [WICKET-1081] - ClassCastException with MetaDataEntry * [WICKET-1087] - Ajax update on a panel caused markup outside the panel to be missing * [WICKET-1092] - IndexedParamUrlCodingStrategy creates a parameter in PageParameters when there is no parameter in the URL * [WICKET-1095] - invisible TransparentResolver skips markup of visible children and thus resulting in an exception in Page#checkRendering (component not found in markup) * [WICKET-1101] - NullPointerException in HybridUrlCodingStrategy * [WICKET-1107] - XHTML code in AjaxFormSubmitBehavior.getPreconditionScript() is not well formed. * [WICKET-1109] - CLONE -DatePicker: NaN if numerical input cannot be parsed * [WICKET-1112] - wantonselectionchangednotification does not work in embedded forms * [WICKET-1119] - Strings.replaceAll giving StringIndexOutOfBoundsException ** Improvement * [WICKET-30] - Nice and more practical url scheme * [WICKET-947] - Add 'UrlValidator' key to PL properties * [WICKET-949] - ExternalLink does not support enable/disable like Link * [WICKET-957] - Change default focus component for focus related events to null * [WICKET-963] - add extension point to configure resource cache expiration time * [WICKET-1005] - provide programmatic access to wicket-ajax.js * [WICKET-1045] - mvn archetype:create -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart * [WICKET-1052] - Wicket Javadoc Standardization: org.apache.wicket.util.thread * [WICKET-1053] - Wicket Javadoc Standardization: org.apache.wicket.util.tester * [WICKET-1054] - No way to escape html markup but keep non-7 bit characters in generated output * [WICKET-1057] - Remove final from WebRequestCodingStrategy. urlCodingStrategyForPath * [WICKET-1059] - Remove onAttach * [WICKET-1060] - Allow component to a IComponentSource implementation that can reconstruct the component * [WICKET-1063] - wicket-guice should support Provider injection and TypeLiteral injection * [WICKET-1067] - Correct javadoc for Fragment * [WICKET-1070] - Missing img alt attribute in WicketAjaxIndicatorAppender * [WICKET-1083] - Inform wicket-ajax whether the application is running in a portlet * [WICKET-1084] - Optimize memory usage * [WICKET-1086] - Extending PagingNavigator for stateless pages * [WICKET-1096] - Wicket Javadoc Standardization: org.apache.wicket.util.template, .string.interpolator * [WICKET-1100] - Make portlet support configurable and default disabled * [WICKET-1113] - DownloadLink support for temporary files * [WICKET-1117] - FormComponent.setType is called in AbstractTextComponent.onBeforeRender * [WICKET-1121] - Slight AbstractChoice refactoring * [WICKET-1122] - Allow override of Pragma No-cache settings in WebPage ** New Feature * [WICKET-445] - TriStateCheckbox Component for use with CheckGroups * [WICKET-975] - Update ImageButton to handle ResourceReferenc * [WICKET-1106] - WicketTester or TagTester should provide access to the enclosed value of a tag ** Task * [WICKET-1078] - format entire codebase with wicket code format settings * [WICKET-1126] - Release Wicket 1.3.0 RC1 ** Wish * [WICKET-1012] - tracking dirty state (was:make setVisible, setEnable, add, addOrReplace, remove and removeAll non-final)