Hi Jesse,

To me 1) looks the simplest and the most flexible one.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov


On Thu, Sep 4, 2014 at 1:12 PM, Jesse Long <[email protected]> wrote:

> Hi Wicket Devs,
>
> WebApplication.unmount() and/or CompoundRequestMapper.unmount() is
> broken, and I want to fix it.
>
> WebApplication.unmount() calls getRootRequestMapperAsCompound(), and
> calls unmount() on that.
>
> getRootRequestMapperAsCompound() checks if the root request mapper is a
> compound, if not, wraps it in a compound, sets the compound as root and
> returns the compound.
>
> CompoundRequestMapper.unmount() identifies which of the mappers added
> directly to the compound handle the url, and removes them.
>
> The problem:
> If the original root mapper was a single wrapper, or layer of wrappers,
> with the actual mounted mapper wrapped some levels down, then the whole
> wrapper is removed, not just the specific MountedMapper that is wrapped.
> This has the effect of removing every single mapper, leaving root mapper as
> an empty compound.
>
> I would like to attempt to provide a patch to fix this, but would like
> guidance on the approach. I have come up with three approaches:
>
> 1. Introduce interface IWrappedRequestMapper. This will be an interface
> which has one method: IRequestMapper getWrappedRequestMapper(). We can then
> have all wrapper mappers implement this and work down the tree to find the
> correct MountedMapper (wicket 6) to remove.
>
> 2. Have WebApplication hold a reference to a specific
> CompoundRequestMapper, and have all mount()/unmount() operations add and
> remove from this mapper. This compound would need to be added to the
> default list during init. This makes it complicated to work out how to do
> things like have CryptoMapper not apply to mounted pages.
>
> 3. Add method unmount() to IRequestMapper, so that wrappers can delegate.
> This obviously can only be done in wicket 7, but we're making mounting a
> problem of every single request mapper, when not even Application cares
> about mounting.
>
> Any thoughts?
>
> Thanks,
> Jesse
>

Reply via email to