Changes Report

Release History

VersionDateDescription
1.2-SNAPSHOTtbd.
1.12005-10-30
1.1-rc22005-10-04
1.1-rc12005-09-11
1.1-b42005-08-30
1.1-b32005-08-22
1.1-b22005-08-01
1.1-b12005-07-24
1.0.12005-07-17
1.02005-06-21

Get the RSS feed of the last changes

Release 1.2-SNAPSHOT - tbd.

TypeChangesBy
Added Finnish translation of our Application.properties Fixes 1471603. Thanks to Joni SuominenMartijn Dashorst
Added example for markup inheritance Fixes 1424558.Martijn Dashorst
wicket.Application.properties and wicket.Application_nl.properties added they will be loaded now as the last resort if nothing is found for the given key. All Validatior keys of wicket are in it. Als the null and nullValid keys of the SingleSelectChoice are in there. Because of that we needed a differentiation between the keys if null is valid or not. null (Choose One) is still the same but the emtpy one is now nullValid. We need now as many properties file for the different locales as possible.Johan Compagner
getSessionStore() of Session is copied to Application, there will now be only one ISessionStore instance per application.Johan Compagner
Added missing wantOnSelectionChangedNotifications to CheckGroupIgor Vaynberg
PropertyResolver seems to update the model with blank value: Now if you do this: new TextField("id", int.class); then the textfield will be required by default! And if you set it to false again it will throw an exception at that point. Fixes 1461977. Thanks to Karthik GuruJohan Compagner
Incorrect bookmark mounts when servlet mapping is /* Fixes 1464649. Thanks to Joseph TothJohan Compagner
Entry of disabled TextField gets lost with server round trip Fixes 1464710. Thanks to gcdhaJohan Compagner
PageMap has buggy behavior, 2 fixes: Pagemap access are synced on specific places. One page can never be handled by 2 threads at the same time for the complete request. This is also importand for people with there own impl of LeastRecentlyAccessedEvictionStrategy. The access to the Pagemap should be synced around the session. See LeastRecentlyAccessedEvictionStrategy.evict(final PageMap pageMap) Fixes 1461287. Thanks to Martijn DashorstJohan Compagner
AbstractRequestTargetCodingStrategy.decodeParameters() now also has access to query string params to make subclassing easier Fixes 1463930. Thanks to R.J. LorimerIgor Vaynberg
Easier resource URLs encoding, mounting of shared resources Fixes 1460191. Thanks to Gili TzabariJohan Compagner
Changed some (mostly internal) api, so that we use CharSequence instead of Strings for better streaming/string concatting. One catch now: If comparing charsequences to a toString(), because StringBuffer.equals(String) will fail for the same chars..Johan Compagner
Fixed bug in SimpleConverterAdapter Thanks to Simon EdwardsEelco Hillenius
Fixed various mis-uses of convertersEelco Hillenius
PackageResource.get() fails when blanks in path Fixes 1462587. Thanks to Arto ArffmanEelco Hillenius
Made Converter non-final Fixes 1462340. Thanks to Karthik GuruEelco Hillenius
Removed check on double-registering static resources. IF that check is useful at all, it should only be done if we are sure resources properly implement their equals contract, which is not the case currently.Eelco Hillenius
Introduced TextTemplate and TextTemplateHeaderContributor to make dynamic javascript contributions a bit less messyEelco Hillenius
Added StringHeaderContributor to enable dynamic, arbitrairy header contributions with behaviorsEelco Hillenius
PackageResources can now be registered recursively (including subpackages) with regular expressionsEelco Hillenius
WebRequestCodingStrategy duplicates wicket:* parameters Fixes 1459110. Thanks to Matej KnoppJohan Compagner
Added time based throttling to ajax events. There is a AjaxCallThrottlingDecorator that can be used on any ajax behavior, as well as a shortcut AjaxEventBehavior.setThrottleDelay() method.Igor Vaynberg
made PasswordTextField required by defaultIgor Vaynberg
Added flash-message functionality. Call Session.info/error/etc instead of Component.info/error.Igor Vaynberg
Multiple < wicket:head > per markup file are now allowedJuergen Donnerstag
< wicket:head > now supports a wicket:scope attribute to allow for more flexibilityJuergen Donnerstag
Autolink behavior can now easily be extendedJuergen Donnerstag
Fixed FileUpload getFile() return not existent files Fixes 1372481.Igor Vaynberg
Added sign in page class to SimplePageAuthorizationStrategy to take care of page authentication in the event of failed authorization. Updated Library example accordingly. Fixes 1455224.Jonathan Locke
NullPointerException in AbstractValidator Fixes 1455515. Thanks to Andrew BermanIgor Vaynberg
Check forgets 'checked' on form error Fixes 1455292. Thanks to Sven MeierJohan Compagner
New methods onAttach(), onDetach(), onBeginRender() and onEndRender() have been introduced. onAttach() and onDetach() are called in internalOnBegin/EndRequest() so they should have the same semantics as the code that is currently doing attach/detach stuff in those places. In Wicket 1.3, we can tighten that up further. In order to guarantee that calls to onBeginRender() and onEndRender() occur in all cases, i renamed Component.doRender() -> Component.renderComponent() and Page.doRender() -> renderPage so that i could make each one final. The renderComponent() method preserves the earlier doRender semantics exactly by checking for instanceof Page and calling Page.renderPage() in that case as if it were overridden. The result is that we can deprecate Component.onBegin/EndRequest() now and provide alternatives for both former usages that will be easy to tighten up or modify in Wicket 1.3 or in the future. I also changed all internal uses of doRender() and onBegin/EndRequest() to the appropriate method. Fixes 1438486.Jonathan Locke
Added "flash" message support. See FlashMessagesPanel and Component.flash(String)Igor Vaynberg
StringIndexOutOfBoundsException at Form$FormDispatchRequest Fixes 1451614. Thanks to Gili TzabariJohan Compagner
Ensure the homepage has a stable URL Fixes 1449120. Thanks to Gili TzabariJohan Compagner
Introduced new AbortWithHttpStatusException exception.Igor Vaynberg
Improved ajax partial rerender support. Rerender support is no longer limited just to the body of the component.Igor Vaynberg
Add wicket release version querying to core Fixes 1447146.Martijn Dashorst
Introduced two adapter classes to simplify providing custom converters and adjusted the FormInputExample to use that instead of the more complicated UrlConverter.Eelco Hillenius
MarkupContainers may now override template loading per instance instead of only per application. This is useful in situations where the loading differs from the rest of the components - e.g. it has to be loaded from a database - without imposing additional need to configure the application for it (and thus in the process breaking it's encapsulation). Also added custom resource loading example to wicket-examples which shows three different ways.Eelco Hillenius
Improved packaged resources. They can now be registered by using regular expressions instead of one at a time (not recursively at this time). Furthermore, single registrations are now fail early in that they throw an exception when they could not be found - which is now checked at construction time. And lastely, implemented a method to check without failing whether a package resource exists.Eelco Hillenius
Added HeaderContributor behavior that allows for an easy alternative for doing header contributions, specifically for components that do not have their own markup.Eelco Hillenius
Made PopupSettings more generally useful by adding a default constructor, tweaked the internals a bit and implemented popup support for external links.Eelco Hillenius
Changed the internals of autolinks so that img and script tags are supported now too, and that it more easy to extend behavior in general, and some minor internal tweaks.Eelco Hillenius
PageParameters/ValueMap getLong and getInt defaults Fixes 1452553. Thanks to Andrew BermanJohan Compagner
niceurl decoder does not remove + Fixes 1448945. Thanks to Gili TzabariJohan Compagner
Refactored the Validators a bit, Depricated Length/IntegerValidators added String/Number/DateValdiator all havind method like min/max or range, See the docs what kind of message key they have like: 'NumberValidator.range'Johan Compagner
DynamicByteArrayResource made thread safe. instead of getData() now getResourceState() must be implemented by subclassesJohan Compagner
CAPITAL body tag Fixes 1446617. Thanks to YuukiJohan Compagner
userinput of radiobuttons and checkboxes forgotten Fixes 1442528. Thanks to Maurice MarrinkJohan Compagner
Trying to hit missing resources should return HTTP 404 Fixes 1441999. Thanks to Gili TzabariJohan Compagner
SharesResources.get() does not check for aliasing Fixes 1441469. Thanks to Gili TzabariJohan Compagner
Added AutoAssistTextField to extensions based on http://capxous.com/autoassist/Igor Vaynberg
Added ability to easily decorate default ajax callbacks. See IAjaxCallDecorator and friends.Igor Vaynberg
Added ability to easily create ajax busy indicators. See IAjaxIndicatorAware and wicket-examples/ajax/links.Igor Vaynberg
Added source browsing capability in examples project Fixes 1427691.Martijn Dashorst
IFormValidator for checking form or multiple form componentsIgor Vaynberg
More flexible validator resource key search order that allows for multiple user defined keys to be searched for error messagesIgor Vaynberg
Refactored form processing to include separate required check and type conversion phasesIgor Vaynberg
Added Ajaxified paging navigatorMartijn Dashorst
Added markup fragments (inline panels)Juergen Donnerstag
Response uses sun.* class GetPropertyAction Fixes 1435245. Thanks to Alistair MawMartijn Dashorst
wicket.util.crypt.AbstractCrypt uses proprietary Sun classes. Fixed by implementing our own Base64 encoder (copied from commons-codec and adjusted to our needs). Fixes 1435251. Thanks to Alistair MawMartijn Dashorst
Clicking on bookmarkable links exhausts page map, Fixed this by changing the PopupSettings class, you have to specify the pagemap now as a constructor param. Fixes 1434863. Thanks to Nick HeudeckerJohan Compagner
Added wicket ajax support implementationIgor Vaynberg
Proxying breaks because ContextPath is included in links: contextpath now configurable through ApplicationSettings.setContextPath(), also through a servlet init param: contextpath Fixes 1433735. Thanks to Alastair MawJohan Compagner
DropDownList: flag to indicate localization of options, By default options are not localized anymore you have to override localizeDisplayValues() method for this. Fixes 1418043. Thanks to Arto ArffmanJohan Compagner
Cookies where not deleted when cleared.Johan Compagner
Removed the Page.checkAccess() method, see the new Authorizaton interfaces for a replacementJohan Compagner
All wicket exception/status pages are sending the HTTP status codes that represents that page (FORBIDDEN for accessed denied, INTERNAL_ERROR for exception pages)Johan Compagner
Added the AttributeAppender to make additions to markup attributes easier.Martijn Dashorst
Added the ability to reset the user input on all form components.Martijn Dashorst
Added component level output transformer (container and behavior)Juergen Donnerstag
Add Pragma: no-cache and Cache: no-store headers on WebPage by default to prevent problems with proxiesJanne Hietamaki
added RedirectToPageException and RedirectToInterceptPageException that allows an immediate redirectsIgor Vaynberg
Containers within wicket:head regions didn't behave properly Thanks to Jim McLaughlinJuergen Donnerstag
RadioChoice didn't register the IOnChangeListener to the RequestCycle Thanks to Bryn CookJohan Compagner
REDIREC_TO_BUFFER strategy changes, Now when responding the Response object is for WebPages always a WebResponse, Headers and Cookies will be now setJohan Compagner
Wicket settings system has been refactored. ApplicationSettings is now hidden behind Application.getXXXSettings interfaces that should be used to access the various settings. See http://www.wicket-wiki.org.uk/wiki/index.php/Migrate-1.2 for details.Igor Vaynberg
Reworked page state to include IPageSource envisioned earlier as well as IPageMapEvictionStrategy for more flexible management of page state. A variety of other small changes were made.Jonathan Locke
Provide a component resolver (see ScopedComponentResolver) which walks up the component tree until a Page or Panel and tries to find a component with a matching wicket id, effectivly providing something like scoping for wicket id re solution. Thanks to Christian EsslJuergen Donnerstag
moved WebApplication.onRuntimeException(Page page, RuntimeException e) to RequestCycle, which is a much more logical place for it, and has a more natural grouping with onBeginRequest and onEndRequestEelco Hillenius
ListView now creates Change objects instead of cloning the whole list on up/down/remove links Fixes 1375598.Igor Vaynberg
FormComponentFeedback* components are now xhtml compliant Fixes 1375590.Igor Vaynberg
Introduced mounting/ nice urls. Provided convenience methods for mounting bookmarkable pages and packagesEelco Hillenius,Igor Vanberg
Session.get/setAttribute are now final to support attaching attribute observers. Use doGet/SetAttribute instead.Eelco Hillenius
Internals of RequestCycle are refactored. The processing is more formalized now, as defined in interface IRequestCycleProcessor. This interface is used by RequestCycle to delegate processing. The target of a request, like Page or e.g. shared resource, is abstracted in IRequestTarget, of which the current is set in RequestCycle.Eelco Hillenius
AttributeModifier is now backed by IBehaviour. Behaviours are classes that can coorperate with Components. You attach them to components (Component.add) and they decide how to cooperate. Besides AttributeModifiers, AjaxHandlers extend IBehaviour. Let your behaviours implement IBehaviourListener to be able to recieve callbacks such as AjaxHandler does.Eelco Hillenius
Made AjaxHandler easier to use; e.g. re-rendering a single component should be possible and easy now.Eelco Hillenius
* Introduced wicket.protocol.http.servlet.WicketSessionFilter to intercepts the current session and set it in a thread local, so that non-wicket applications can reuse the session by just calling Session.get().Eelco Hillenius
Added check and better exception when servlet's init param is missingIgor Vaynberg
WicketTester now allows testing of already instantiated pages. Fixes 1351511.Juergen Donnerstag
WicketTester and MockWebApplication now support BookmarkablePageLink Fixes 1365114.Juergen Donnerstag
Race condition with Session and RequestCycle Fixes 1373547.Martijn Dashorst
Properties files, like markup files already, are now automatically reloaded if modified.Juergen Donnerstag
added SubmitLink component, This is a < a href > that acts as a button, can be placed inside or outside the form to trigger the submit. Thanks to Christian EsslJohan Compagner
Form component values are always escaped when the components wants to escape there values (also illegal values) Thanks to Laurent PETITJohan Compagner
The Form will hold the values now in its own state until everything is (successfully) validated to the model(s) Thanks to Laurent PETITJohan Compagner
IOnChangeListeners, like DropDownChoice, now use the form submit to call the interface methodJohan Compagner
localized null fixes and localized display value fixes, getID() shouldn't be appended. (that does the localizer) Thanks to Maurice MarrinkJohan Compagner
response filter support, 2 filters added: ServerTime and ServerClientTime, Can for example also be used for Xml TransformationsJohan Compagner
Fixed setModelObject() when the component has a root model. Thanks to Anders PetersonJohan Compagner
Replaced OGNL with our own implementation. Most simple property and method calls (with no parameters) are supported. see wicket.util.object.ObjectsJohan Compagner
Fixed component handling for HTML tags which do not require close tags Fixes 1357506. Thanks to Phil KulakJuergen Donnerstag
Support for wicket:message Thanks to Wickit CommunityJuergen Donnerstag
XML tags names must not be converted to lower case in TagNameParser Fixes 1352468. Thanks to Tobias KalbitzJuergen Donnerstag
Allow to re-render single components.Juergen Donnerstag
unclosed quote in wicket:id causes JVM crash Fixes 1346317. Thanks to Jason EssingtonJuergen Donnerstag
Fixed NPE issue with autolinksJuergen Donnerstag
Fixed bug in button that caused the value attirbute to disappear after form submit Fixes 1357755.Igor Vaynberg

Release 1.1 - 2005-10-30

TypeChangesBy
fixed: Invalid Panel markup throws weird exception Fixes 1339686. Thanks to Janne HietamäkiJuergen Donnerstag
Removed experimental code: page sets.Jonathan Locke
added ValueMap.isMutable() Thanks to Simon BerrimanEelco Hillenius
introduced methods WebPage.beforeCallComponent and WebPage.afterCallComponent to enable you to put functionality 'around' any component handler call, like setting up dependencies, enfore authorization, do logging, etc.Eelco Hillenius
added RadioGroup and Radio form components Fixes 1329439.Igor Vaynberg
css can be overriden for tree Fixes 1312969. Thanks to Phil KulakEelco Hillenius
fixes a bug in Link Fixes 1315986. Thanks to Igor VaynbergJohan Compagner
RequiredValidator for RadioChoice Fixes 1325155. Thanks to Ralf EbertJohan Compagner
Default converter throws exception for empty values Fixes 1327434. Thanks to Ralf EbertJohan Compagner
added ${label} to variables available for form component validator messages and implemented validator default messages accessible by the validators simple class name. Fixes 1249907. Thanks to Igor VaynbergJuergen Donnerstag
onload event handler does no longer string append on each render Fixes 1318438.Juergen Donnerstag
Allow for user specifc Localizer, e.g one using Spring MessageSources.Juergen Donnerstag
For tomcat you have to use useBodyEncodingForURI="true" in the Connector configuration in the server.xmlJohan Compagner
Improved wicket:head mis-placement detection. Fixes 1318196.Juergen Donnerstag
wicket:head tags is no longer required in the inherited base panel. It is automatically inserted if required. Fixes 1318175.Juergen Donnerstag
wicket1.1 CVS HEAD depends on jdk1.5. Fixes 1317715. Thanks to Zoltan LuspaiJuergen Donnerstag
Add locale/style support for autolinks Fixes 1315708. Thanks to Ari SuutariJuergen Donnerstag
Enhanced MockWebApplication For Testing Controller Logic Fixes 1287539. Thanks to Ingrem ChenJuergen Donnerstag

Release 1.1-rc2 - 2005-10-04

TypeChangesBy
Wicket-extensions distribution doesn't contain javadoc. Fixes 1290799. Thanks to Jan BaresMartijn Dashorst
Image components inside a border component are resolved by the parent of the border, thus keeping pre-viewability and componentization. Fixes 1312787. Thanks to Ari SuutariJuergen Donnerstag
Borders now treat autolinked resources within wicket:head tags correctly Fixes 1289768. Thanks to Jan BaresJuergen Donnerstag
skip content of script tag. Treat it as raw markup Fixes 1287640. Thanks to Jan BaresJuergen Donnerstag
Wrong impl. on getParameters() of WebRequestWithCryptedUrl Fixes 1275726.Johan Compagner
Added serialversionuid to all the serialized wicket classes Fixes 1288373.Johan Compagner
Add WebPage(PageParameters) constructor (helps with your IDE's code completion features) Fixes 1284625. Thanks to Gwyn EvansEelco Hillenius
Link altered child visibility based on wicket id; hidden 'feature' is removed now. Fixes 1297446. Thanks to Sven MeierEelco Hillenius
Improved hangman letter images to use just one image reference. Fixes 1297449. Thanks to Sven MeierEelco Hillenius
doc fix for Button.setDefaultFormProcessing Fixes 1287878. Thanks to Leo WestEelco Hillenius
Call invalidate after each setXXX invocation on DefaultButtonImageResource to force re-rendering Fixes 1266998. Thanks to Johan CompagnerEelco Hillenius
Made WicketExampleHeader.html (X)HTML compliant Fixes 1267147. Thanks to Jan BaresEelco Hillenius
Link.autoEnable is now false by default, and when setEnabled is called, autoEnable will be set to false too as calling setEnabled is a consious action that has no effect when autoEnable is true Fixes 1251658. Thanks to Zhenbang Wei, Niclas HedhmanEelco Hillenius
Link.autoEnable is now false by default, and when setEnabled is called, autoEnable will be set to false too as calling setEnabled is a consious action that has no effect when autoEnable is true. Autolinks are autoEnabled by default, and so are the paging navigator links. CHECK YOUR CODE WHETHER THIS HAS CONSEQUENCES FOR YOU! Fixes 1240768. Thanks to Gili TzabariEelco Hillenius
added class wicket.markup.html.image.resource.BlobImageResource to make working with images from databases easier.Eelco Hillenius
made Link.isEnabled non final so that users can more easily customize on/off behaviour.Eelco Hillenius
Models not detached when checkAccess() returns false. Fixes 1290352. Thanks to Phil KulakJohan Compagner
DatePicker fails when used multiple times in the same page Fixes 1290843. Thanks to Ralf EbertJohan Compagner
Buttons with empty value are not found as submit button Fixes 1298789.Johan Compagner
Persisted form values not loaded for bookmarkable/redirect pages Fixes 1298795.Johan Compagner
Moved Dojo and Scriptaculous dependencies out of core into contrib packages Fixes 1298082.Martijn Dashorst
Renamed pageableListViewNavigation field and getter in PagingNavigator Fixes 1288863. Thanks to Igor VaynbergMartijn Dashorst
Patch for error in javadoc in ApplicationPages Fixes 1294381. Thanks to Igor VaynbergMartijn Dashorst
form now checks on enctype attribute. If the attribute is multipart, the multipart property of the form object will be set to that.Eelco Hillenius
AJAX component doesn't get correct request parameter path Fixes 1292416.Martijn Dashorst
Made FileResourceStream non-final to support using custom content type schemas etcEelco Hillenius

Release 1.1-rc1 - 2005-09-11

TypeChangesBy
Resource.setHeaders(WebResponse response) so that users can add any header they want (cacheable/content disposition) when the resource is served Fixes 1286190,1221732.Johan Compagner
AttributeModifer can't be shared between components Fixes 1286620.Johan Compagner
Infinite loop when adding attributemodifier twice Fixes 1286607.Johan Compagner
Moved resource reference classes from extensions into core Fixes 1255188. Thanks to Gili TzabariMartijn Dashorst
StaticFileResource wasn't used and seemed to be a relic that was refactored to PackageResource. StaticFileResource is removed from Wicket. Fixes 1263833. Thanks to Johan CompagnerEelco Hillenius
Attributes should preserve case. Before this fix, attributes were converted to lower case. Not anymore now. Fixes 1286616. Thanks to Cameron BraidEelco Hillenius
Internal Error when using back buttons and Links in ListView Fixes 1284498. Thanks to Kenneth Foo Chuan KhitJohan Compagner
Buttons can have a model now, for the buttons value attributeJohan Compagner
Odd behaviour when Wicket is the "root" (/*) servlet Fixes 1284029. Thanks to Gwyn EvansJohan Compagner
Integrated classes from concurrent.jar into wicket.util, removing the need for concurrent.jar Fixes 1283301.Martijn Dashorst
null values in PageParameters are now ignored totally when generating urls, instead of resulting in 'x=null'. Fixes 1284508. Thanks to Matej KnopEelco Hillenius
fix: now allow multiple ajax handler implementations to contribute to the page's header Thanks to Arto ArffmanEelco Hillenius
Redirect url generating issues. The url was generated before Component.onInternalBeginRequest() and that method can generate another version.Johan Compagner
added protected method Session.attach() that is called right before a session is used for a requestJohan Compagner
Added FormComponent.getInputName() that by default generates a name from the Form (not included) to the component for better/smaller input namesJohan Compagner
Clearer message when trying to render abstract Page. Fixes 1255061. Thanks to Gili TzabariJuergen Donnerstag
< wicket:head > behaviour slighty changed to be more intuitiv.Juergen Donnerstag
addToHeader() is nor longer required. Just use add() to add components which are inside a head sectionJuergen Donnerstag
xmlns:wicket="http:/..." is now removed from markup as well if setStripWicketTag(true) Fixes 1276640. Thanks to Simon BerrimanJuergen Donnerstag
< select .../ > is now allowed and will automatically be converted into a open-body-close tag Fixes 1243152. Thanks to Eelco HilleniusJuergen Donnerstag
Fixed wrong implementation off getParameters() in WebRequestWithCryptedUrl Fixes 1275726. Thanks to Ingram ChenJuergen Donnerstag
Unescaped < b > tag in XmlTag Javadoc Fixes 1280468. Thanks to Simon BerrimanGwyn Evans

Release 1.1-b4 - 2005-08-30

TypeChangesBy
CheckBoxMultipleChoice code submission Fixes 1276126. Thanks to Gwyn EvansJohan Compagner
Strings.toMultilineMarkup doesn't generate valid xhtml Fixes 1275263. Thanks to Martijn DashorstJohan Compagner
ICompoundModel for compound models as an interface instead of a hard check for CompoundPropertyModelJohan Compagner
IComponentValueComparator for comparing current model data and new valueJohan Compagner
Renamed Ajax stuff: IEventRequestListener - > IAjaxListener, IEventRequestHandler - > IAjaxHandler, AbstractEventRequestHandler - > AbstractAjaxHandler, DojoEventRequestHandler - > DojoAjaxHandler, ValidationEventRequestHandler - > ValidationAjaxHandler. Also renamed onEventRequest - > onRequest and rendered - > onComponentRendered.Eelco Hillenius
ListView removeLink notified only ListItem over model changes. It now notifies the ListView instead. Fixes 1267247. Thanks to Oliver SchoenherrEelco Hillenius
AJAX: removed Rico ajax support. Added script.aculo.us support. Fixed javascript registrations using the Wicket initializer.Eelco Hillenius
Incorrect 1.1-b3 examples documentation Fixes 1267370. Thanks to Stephen BateMartijn Dashorst
Factored out the commons-fileupload dependency. As for portlets we would need the development version of that lib, but the last release was in december 2004, I have no trust in how this library will be maintained. Also, the development version introduces a new dependency, commons-io, for just one concrete class. I lifted out the classes we use, put it in Wicket specific packages and cleaned up the deprecations.Eelco Hillenius
Implemented the basic changes that are needed support other kind of webapplications, such as portlets. The main change in this is that WebRequest is now abstract, and that in a servlet environment ServletWebRequest is the concrete implementation. The changes are mostly internals; the only break (actually for clients that depended on internals anyway) is that instead of doing: javax.servlet.http.HttpServletRequest httpRequest = ((WebRequest) cycle.getRequest()).getHttpServletRequest(); to get the servlet http request, you should now do: javax.servlet.http.HttpServletRequest httpRequest = ((ServletWebRequest)cycle.getRequest()).getHttpServletRequest(); NOTE: As a consequence of this and other changes, it is now possible to have requests that do not live in a session, or that the session is created after the request. This should never get you in trouble actually, except when you do: Session.get().getApplication() in a constructor of a wicket.Request subclass. Replace this with Application.get() (which was a better idea anyway). Thanks to Ate DoumaEelco Hillenius
Exception when replacing non-existent components Fixes 1266090. Thanks to Ralf EbertJuergen Donnerstag
More explicit exceptions with WicketServlet Fixes 1259548. Thanks to Seth LaddJuergen Donnerstag
fixed bug where response encoding was null Fixes 1267120.Juergen Donnerstag
wicket:link tag now gets removed as well if setStripWicketTag(true) Fixes 1274320.Juergen Donnerstag
fixed problem with markup inheritance in combination with head and wicket:head tags. Components inside these tags were not properly processed.Juergen Donnerstag
ByteArrayResource and DynamicByteArrayResource classes Fixes 1271523. Thanks to Ralf EbertJohan Compagner
ResourceLink and Resources Fixes 1271510. Thanks to Ralf EbertJohan Compagner
Document lifecycle of resources (idle/cache Timers on resources) Fixes 1260087. Thanks to Gili TzabariJohan Compagner
You can now provide a label component to synchronize ids with the datepicker component Thanks to Jan BaresEelco Hillenius
improvements: newValue is now called if the replacement value is null, allowing to supply new values just by subclassing. ReplaceModel can now be null.Eelco Hillenius
fixed problem with markup inheritance in combination with head and wicket:head tags. Components inside these tags were not properly processed. Fixes 1272174.Juergen Donnerstag
Child and Extend tags are no longer appearing in HTML when strip=true. Fixes 1272174.Juergen Donnerstag
Default date parsing is now in non-lenient mode, which means that it will fail fast. Fixes 1273827.Eelco Hillenius
DefaultResourceStreamLocator now implements List like methods to allow for more flexibility, similar to chainingJuergen Donnerstag
Invisible components are not rendered any more Fixes 1267233.Juergen Donnerstag
Fixed autolink support for none-html files Thanks to Gili TzabariJuergen Donnerstag
Invalid image URLs should produce HTTP 404 Fixes 1250570. Thanks to Gili TzabariJohan Compagner
Consistent homepage URL with NO_REDIRECT Fixes 1251385. Thanks to Gili TzabariJohan Compagner
Links to resources won't append the current locale of the user anymore to there url. The locale binding is done on request and now with the proper fallback. First the full locale is used. Then only the language and then no locale. If you set a different locale to a resource then the current locale then the locale is still appended to the url. So that one is forced to be used when the lookup occurs. Fixes 1265068. Thanks to Gili TzabariJohan Compagner
Paging refactor, now the paging code is extraced from PageableListView and it is moved to there own package, wicket.markup.html.navigation.paging. It has 2 interfaces now: IPageable and IPagingLabelProvider. IPageable should be used by components that are pageable. They have to return the total pagecount and be able to set and get the current page what that they are displaying. The IPagingLabelProvider can be used to override the default link text of a page link. Default it is just the page number. But with a labelprovider you can set this for example to [1-10],[11-20],[21-24]. The PagingNavigator or the PagingNavigation both have constructors for a IPagingLabelProvider. Fixes 1256084.Johan Compagner
UrlResourceStream.length() of changed resources Fixes 1254857. Thanks to Jan BaresJohan Compagner
Refactored PackageResource to not depend on package anymore. Package provides the wrong classloader (if any) for loading the resource. It now uses the scope class, which is consistent with the rest of our resource story. Fixes 1263801.Johan Compagner, Eelco Hillenius
Lot's of serialization fixes, also refactored Static- > PackageResoures Fixes 1251853.Johan Compagner
Conent type of static resources is content/unknown Fixes 1251710. Thanks to Jan BaresJohan Compagner

Release 1.1-b3 - 2005-08-22

TypeChangesBy
Refactored PackageResource to not depend on package anymore. Package provides the wrong classloader (if any) for loading the resource. It now uses the scope class, which is consistent with the rest of our resource story. Fixes 1263801.Johan Compagner, Eelco Hillenius
Added debug toString() methods to all models in wicket.model Fixes 1260304. Thanks to Dariusz WojtasMartijn Dashorst
AbstractDetachableModel doesn't propogate attach/detach Fixes 1253113. Thanks to Cameron BraidEelco Hillenius
Javadoc missing for AbstractChoice Fixes 1247719. Thanks to Gili TzabariMartijn Dashorst
ListMultipleChoice doesn't support maxRows Fixes 1253999.Martijn Dashorst
PageParameters doesn't escape markup in values Fixes 1259701. Thanks to Francis AmanfoEelco Hillenius
Can't have two FeedbackPanels - fixed in conjunction with 1219458 Fixes 1263096. Thanks to Simon BerrimanMartijn Dashorst
FeedbackPanel produces illegal HTML - The initial state of the FeedbackPanel produces empty ul open and close tag since there is no initial message to display. This is illegal HTML according to the HTML validator (XHTML strict mode). Fixes 1219458. Thanks to Gili TzabariMartijn Dashorst
Fixed WicketServlet.doGet URI bug Fixes 1261052 . Thanks to Jan BaresJuergen Donnerstag
Extended markup inheritance to support panels and borders as wellJuergen Donnerstag
Added MarkupContainer.iterator(Comparator comparator)Jonathan Locke
fix for classloading problems that caused problems loading markup/ resources for components that were loaded by another classloader than the current one.Eelco Hillenius
Fix HTML generated from AbstractChoice - Added missing space after 'option selected="selected"' Fixes 1249961. Thanks to Cameron BraidGwyn Evans
Added getBoolean() to ValueMap Fixes 1254379. Thanks to Phil KulakEelco Hillenius
AbstractDetachableModel didn't propogate attach/detach Fixes 1253113. Thanks to Cameron BraidEelco Hillenius
Made LoadableDetachableModel.getNestedModel() non final Fixes 1253111. Thanks to Cameron BraidEelco Hillenius
Changed implementation of component map in MarkupContainer to an array model like the validators changed. This made a significant reduction in the size of pages, especially big pages. For example, nested shrank from 69,958 bytes to 55,231 bytes which is a savings of 14,727 bytes that was due to HashMap overhead. Very large containers may run slower, but most containers are likely to be faster as should be recursion/iteration. The main downside is that this code is very ugly and involves the same kinds of tests and casts that we did to make the validators implementation more space efficient.Jonathan Locke
refactored feedback completely. the new code is smaller, more powerful and more elegant. but it will break clients. most clients who are using simple features of the old feedback code will only have to (a) change their package imports from wicket to wicket.feedback (because the feedback stuff is several more class files that are polluting the root package and likely to grow due to the new filtering mechanism) and (b) delete any IFeedback argument to Form. clients who are looking for more powerful ways to filter their messages will now have completely unlimited capacity to do so through the new IFeedbackMessageFilter interface and the default filter implementations ComponentFeedbackMessageFilter, ContainedByFeedbackMessageFilter and ErrorLevelFeedbackMessageFilter. the whole model for feedback messages has changed from one of component-orientation, which was a mistake, to one of message orientation. to give feedback, a feedback component implements the new IFeedback interface which contains just updateFeedback(). in this method, which is called before the page is rendered, the component can use the FeedbackMessages.messages() method in combination with a filter implementing IFeedbackMessageFilter to retrieve a list of appropriate messages. all feedback messages on the page are pushed through this filter. messages for which IFeedbackMessageFilter.accept() returns true are added to the list. for example, the new FormComponentFeedbackBorder uses the ContainedByFeedbackMessageFilter in its call to FeedbackMessages.messages(). The filter being used by the form component feedback border can be changed by overriding the getFeedbackMessagesFilter() method. This combination allows FormComponentFeedbackBorder to show its error indicator by default when a component that it contains has an error, but allows the user to override this behavior. another example is provided in FormComponentFeedbackIndicator, which is a panel showing a red star (and overridable with you own markup!) that shows or hides itself depending on the result of the filter returned by the overridable getFeedbackMessageFilter() method. if the filter accepts at least one message, the indicator will show itself. if no message matches the filter, the indicator will hide itself. note that feedback message filters do not necessarily have to have anything to do with components. you can install, for example, an ErrorLevelFeedbackMessageFilter which filters out messages below a certain threshold. or you can make a custom filter that uses any attribute of FeedbackMessage to filter on. the new FeedbackPanel also provides a getFeedbackMessageFilter() override.Jonathan Locke
Maximized efficiency of validators list by doing a little neat object casting in the private implementation. This also simplified things conceptually.Jonathan Locke
Made FormComponent more space efficient by using boolean flag bit in Component superclass to keep track of persistent boolean.Jonathan Locke
Changed RequestCycle.internalOnRuntimeException() implementation so that it checks the new Page return value from onRuntimeException. if onRuntimeException returns a Page, it will be redirected to. if not, wicket will use the default page. this provides a nice low-level way of doing something totally different to handle runtime exceptions. if you just want to change the basic look of your InternalErrorPage, you can still just subclass that. but if you want to do sophisticated things with runtime exceptions, you want to override RequestCycle's onRuntimeException method.Jonathan Locke
Refactored intializer code. Now wicket.properties is checked for each jar or root folder on the classpath. If it contains either initializer=[class] or [app-name]-initializer=[class], that class is instantiated and the IInitializer.init(Application) method is called on the resulting object. So, both libraries and applications can easily initialize their resources now. For example, the core wicket.properties file contains just this: "initializer=wicket.Initializer", which invokes the wicket.Initializer class with the application being loaded. The wicket.Initializer.init() method will contain a sequence of initializations. For example, "new TreeComponentInitializer().init(application)". This is a much better and safer and more Java way of initializing components for a library like core. Updated the images example to show how this is done.Jonathan Locke
Changed structure of process() back to its original no-parameter form and introduced a nice, logical return value in onFormSubmitted to determined whether to call delegateSubmit().Jonathan Locke
HtmlHeaderContainer to supports markup inheritance. Fixes 1255293. Thanks to Gili TzabariJuergen Donnerstag
Changed StaticResourceReference and StaticResource to PackageResourceReference and PackageResource, then added an Application parameter to each to make that explicit. Added IComponentInitializer method that is called in Application constructor for each class listed in META-INF/wicket-component-initializers.txt. This will allow component developers to initialize resources when the app starts up. For applications, you can also create a META-INF/[ApplicationName]-wicket-component-initializers.txt if you want to preload resources or otherwise initialize for pages. Made changes to ImagesApplication to demo this, including an example that preloads the cancel button via META-INF/ImagesApplication-wicket-component-initializers.txtJonathan Locke
Added min, max and length parameters to the error message interpolation of LengthValidatorMartijn Dashorst
Added automatic multiPart support to Form. You can still call Form.setMultiPart() if you want to, but it is no longer necessary. Fixes 1255297.Jonathan Locke
Added WebSession.getId() and WebRequestCycle.getWebSession()Jonathan Locke
added AbstractReadOnlyModel Fixes 1250030. Thanks to Igor VaynbergEelco Hillenius
allow protected access to AttributeModifier's replacement model Fixes 1249929. Thanks to Igor VaynbergEelco Hillenius

Release 1.1-b2 - 2005-08-01

TypeChangesBy
Upgraded dependencies to latests versions: log4j (1.2.8 - > 1.2.11), concurrent (1.3.3 - > 1.3.4). Fixes 1231300.Martijn Dashorst
Removed dependency on dom4j Fixes 1248759. Thanks to Brad PardeeMartijn Dashorst
Folded UploadForm and Form into one (Form). Instead of using UploadForm, you can now just use Form and call setMultipart(true). Thanks to Cameron BraidEelco Hillenius
Made FormComponent.updateModel() public for AJAX support. Fixes 1246322.Martijn Dashorst

Release 1.1-b1 - 2005-07-24

TypeChangesBy
removed wicketNamspace property from ApplicationSettings, instead clients should use the xmlns attribute in the markup file ( < html xmlns:namespace > ) Fixes 1223348.Juergen Donnerstag, Eelco Hillenius
Component.setShouldEscapeModelStrings renamed to setEscapeModelStringsEelco Hillenius
Buttons now have an 'immediate' property. If true, this button behaves much like a normal link; no validation nor updating of the nested form components is done automatically in that case. This property is false by default.Eelco Hillenius
Only validate components that are visibleEelco Hillenius
setStripWicketTags now takes Wicket namespaces (setWicketNamespace) into account. Fixes 1216017. Thanks to Janne HietamäkiJuergen Donnerstag
Added support for JavaScript and CSS. Please see the Wiki for more details.Juergen Donnerstag
Added component wicket.markup.html.include.Include for including content from non-Wicket resources.Eelco Hillenius

Release 1.0.1 - 2005-07-17

TypeChangesBy
FeedbackPanel: made some methods that were not meant for overriding final, and added methods that make extending feedbackpanel easier Thanks to Phil KulakEelco Hillenius
fixed bug in AbstractPropertyModel which gave problems using custom converters (overriding getConverter for a component) with compound property models Thanks to Adam HowardEelco Hillenius
ComponentStringResourceLoader: resources are now inherited from parent classes when components have been subclassed Thanks to Jonathan CarlsonChris Turner

Release 1.0 - 2005-06-21

TypeChangesBy
StaticResourceReference now binds itself immediately so clients don't have to know about the binding internals.Eelco Hillenius
Pageable list view navigator did not handle the "last" link properly in situations where additional elements have been added to the underlying list. Fixes 1209753.Juergen Donnerstag
Image didn't like webapps with urlpattern set to /*. It does now. Fixes 1213229.Eelco Hillenius
Fixed negative numbers in PageParameters. Fixes 1275631.Martijn Dashorst
added PageableListView.setRowsPerPageEelco Hillenius
Fixed converters once and for all. Null check results so that e.g., empty strings for numbers (e.g.) now return null instead of throwing a NPE Fixes 1211663. Thanks to Martijn DashorstEelco Hillenius
The UploadForm now considers the encoding Fixes 1209027.Eelco Hillenius
By means of Component.setRenderBodyOnly(boolean) it is now easily possible to print the tag's body only. This is e.g. necessary with < span > tags and Panels where in cases you want to be strictly HTML compliant the < span > tag itself must be removed. The (tag's) body will always be printed.Juergen Donnerstag