Pax Wicket - 2.0.0

Pax Wicket - 2.0.0

Release 2.0.0 (Wicket 6, 2012-11-18)

Overview

The best features for Pax Wicket 2.0.0 are definitely the upgrade to Wicket 6.0.0 AND the possibility to upgrade Wicket without upgrading Pax Wicket! In addition filters support the full lifecycle now. Finally it's possible to configure your application during the registration (which should allow multible instances of the same application with different configurations). All parts of the documentation affected by those changes had been updated.

-Enjoy

The Pax Wicket Team

Noticeable Improvements/New Features compared to 1.x

This section contains all noticable new features in details and presents you what you're able to do with them.

Wicket 6 Support

The entire internal Pax-Wicket structure and features had been upgraded to work together with Wicket 6.x now.

Extracted all bundles from package

Pax Wicket no longer includes all the bundles it requires to run. In fact we've excluded all external dependencies from the core packages. You're able now to upgrade the Pax Common modules and Wicket itself (we haven't bundled any other dependencies before) by yourself. No longer waiting for a new Pax Wicket release if you want to upgrade to a new Wicket version! Please keep in mind that Wicket is now following (same as Pax Wicket) the semver.org "policy". This means you should be able doing any Wicket 6.x upgrade together with Pax Wicket 2.0 BUT for the future Wicket 7.x you'll need Pax Wicket 3.0!

Filter is following the "regular" definition now

The FilterFactory in Pax Wicket 1.x was a quick implementation being designed to do only the required job but not following it's definition. In Pax Wicket 2.x it now throws a Servlet Exception and is following the "official" behavior now which is:

  • PAX Wicket creates filter only if neccessary and cache them if necessary for the current ServletContext.
  • Whenever a filter is newly created its init mehtod is called
  • When the Filterfactory goes away (or the aplication what ever comes first) all cached Filterd of that factory are destroyed

Allow to configure applications during creation

The application factory example shown here present a way how you can start the same application with different params. This has the big example that you can configure various aspects of an application the moment you describe it's startup process.

Upgrade from 1.x

The steps here does not include whats possible now, but considers what you require to change to make your 1.x Pax Wicket application work with Pax Wicket 2.x

Wicket 5.x to Wicket 6.x

There hadn't been many changes between Wicket 5 and Wicket 6. Still there might be some compilation errors you need to fix. We wont list all changes of Wicket here but you should easily be able to find them. 

Extracted packages

Please read Install Pax Wicket again and make sure that you're using the latest packages.

New Filter Behavior

The filter behavior had been adapted to follow the filter spec; make sure that your filters do so too!

IApplicationFactory had been replaced by own interface

If you're registering your application factory manually you need to change the IApplicationFactory interface of Wicket to WebApplicationFactory from Pax-Wicket. Their functionality is equally, but the WebApplicationFactory has some advanced usages.

Download

The following sections presents where you can retrieve PAX-WICKET from.

Direct Download

The service bundle can be downloaded here, the source reference here and the javadoc here.

Maven

All artifacts are distributed and available via the maven central repository

<!-- Pax Wicket Core -->
<dependency>
  <groupId>org.ops4j.pax.wicket</groupId>
  <artifactId>org.ops4j.pax.wicket.service</artifactId>
  <version>2.0.0</version>
</dependency>
<!-- Pax Wicket Test Utilities -->
<dependency>
  <groupId>org.ops4j.pax.wicket</groupId>
  <artifactId>org.ops4j.pax.wicket.test</artifactId>
  <version>2.0.0</version>
</dependency>

Karaf

Pax Wicket comes with Karaf feature files for the pax-wicket core and for the samples:

features:addurl mvn:org.ops4j.pax.wicket/features/2.0.0/xml/features
features:addurl mvn:org.ops4j.pax.wicket.samples/features/2.0.0/xml/features

We also support the upcoming Karaf 3.0.0 release out of the box. Please keep in mind that the commands are slightly different for that version

feature:url-add mvn:org.ops4j.pax.wicket/features/2.0.0/xml/features
feature:url-add mvn:org.ops4j.pax.wicket.samples/features/2.0.0/xml/features

Source code

You can browse, download and checkout the source code at https://github.com/ops4j/org.ops4j.pax.wicket/tree/v2.0.0.

Detailed Changelog

For the 2.x release we've fixed 36 issues:

Bug

  • [PAXWICKET-273] - Pax wicket shutdown issues - INJECTION_SOURCE_SCAN cannot be used with neither blueprint nor spring context
  • [PAXWICKET-330] - Thx to the VERY STRANGE versioning of the jetty guys pax-wicket is not compatible to pax-web 2.0 (karaf 3.0)
  • [PAXWICKET-331] - Initial unmounting in PageMounterTracker fails in wicket 1.5
  • [PAXWICKET-332] - There are situations where it's possible that the two IWebApplicationFactory trackers in pax-wicket overrun each other
  • [PAXWICKET-333] - Blueprint range from 0.3 to 1.0 is too short
  • [PAXWICKET-334] - Argument 'requestCycle' may not be null Exceptions when removing a PageMounter
  • [PAXWICKET-343] - Pages are not correctly serialized
  • [PAXWICKET-345] - License check does not define any ignores in root pom
  • [PAXWICKET-347] - Fix classloading issue
  • [PAXWICKET-356] - hasApplicationContext fails with class not found exception if spring is not present in container
  • [PAXWICKET-367] - Pax Wicket Page factory not working with wicket 6
  • [PAXWICKET-371] - Incredible memory consumption error
  • [PAXWICKET-372] - Pax Wicket Service should not depend on wicket-extensions 1.4.15
  • [PAXWICKET-373] - Pax Wicket Service should not depend ops4j-base (or at least not transitively)

Dependency upgrade

Improvement

  • [PAXWICKET-230] - Use the real class produced by the IWebApplicationFactory
  • [PAXWICKET-326] - Give a better exception if a bundle has a BundleScanningMountPointProvider registered without any classes
  • [PAXWICKET-341] - Reduce log level for classresolver problem
  • [PAXWICKET-342] - Improve work with testing library
  • [PAXWICKET-349] - FilterFactory does not respect the filter lifecycle
  • [PAXWICKET-350] - FilterFactory should throw ServletException
  • [PAXWICKET-352] - The documentation is unclear about the meaning of the pax.wicket.applicationname
  • [PAXWICKET-353] - The usage of the PageFactory is unclear
  • [PAXWICKET-358] - Allow overwritten beans in ApplicationContextMock
  • [PAXWICKET-360] - Allow injection beans to contain null values

New Feature

  • [PAXWICKET-379] - The inject mechanism should support Declarative Components or even ordinary services.

Task