The Apache Wicket team is proud to announce the immediate
availability of the
newest release of their component oriented open source Java web
framework.
Apache Wicket 1.5 has been in development for the last two years and
brings
many improvements over previous versions.
Downloading Apache Wicket 1.5
-----------------------------
You can download the release here:
http://www.apache.org/dyn/closer.cgi/wicket/1.5.0
Or use this in your Maven POM to upgrade to the new version:
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-core</artifactId>
<version>1.5.0</version>
</dependency>
Please note that Wicket’s main artifact ID has been renamed to
wicket-core.
You will need to upgrade all modules (i.e. wicket, wicket-extensions,
wicket-ioc, wicket-spring, etc) to 1.5.0. It is not possible to mix
previous
versions of Wicket with modules of this release.
Most notable changes
--------------------
With this release the Wicket team has revised many of its internals. A
short list:
- HTML5 components added: EmailTextField, NumberTextField,
UrlTextField and
RangeTextField
- New inter-component events (explained below)
- Minimum required servlet API is servlet-api 2.5
- All standard validators now extend Behavior to allow for client side
validations
- IBehavior has been removed and AbstractBehavior has been
deprecated, you
should now extend Behavior instead
- Simplified the request cycle processing and made it more extensible
- URL handling is now in one place
- Wicket’s rendering code has been greatly simplified
- Improved browser caching support
- ClientSideImageMap replaces old ImageMap
- Better support for running behind proxies with x-forwarded-for
header
- Request cycle listeners make it easier to integrate frameworks in
your
Wicket application
- Consistent naming: methods with Javascript in the name have been
renamed to
use proper capitalization: JavaScript
- Switching to HTTPS is as simple as configuring a new root mapper
to make
Wicket HTTPS aware and annotating a page with @RequireHttps
A longer list of changes and improvements can be found in our migration
guide.
Inter-component events
----------------------
Wicket 1.5 offers a simple, yet flexible, way for component to
communicate
with each other in a decoupled manner. The two major interfaces that
facilitate this are:
/**
* Objects that can send events
*/
public interface IEventSource {
<T> void send(IEventSink sink, Broadcast broadcast, T payload);
}
and
/**
* Objects that can receive events
*/
public interface IEventSink
{
/**
* Called when an event is sent to this sink
*/
void onEvent(IEvent<?> event);
}
The classes that implement these interfaces, and can thus participate
in the
event mechanism are: Component, RequestCycle, Session, and Application.
The mechanism allows for different event broadcast methods defined here:
/**
* Defines the event broadcast type.
*/
public enum Broadcast {
BREADTH,
DEPTH,
BUBBLE,
EXACT;
}
There is an example in wicket-examples which demonstrates the usage
of this.
Applications can register custom event dispatchers in
FrameworkSettings; the
dispatchers can be used to build custom event delivery mechanisms.
For example
a custom IEventDispatcher mechanism can route events to annotated
methods, for
example:
public class MyComponent extends Component {
@OnEvent
private void onUserAdded(UserAddedEvent event) {...}
}
where UserAddedEvent is the event payload object.
The default Component#onEvent method will be called even if custom
dispatchers
are registered.
A default event is raised whenever Wicket begins to create an AJAX
response.
The payload of the event is the AjaxRequestTarget used for event. Sample
implementation:
// component that always adds itself to the ajax response
public class MyComponent extends Component {
public void onEvent(IEvent event) {
if (event.getPayload() instanceof AjaxRequestTarget) {
((AjaxRequestTarget)event.getPayload()).add(this);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org