Hi *,

We've built a platform which hosts dynamic websites. Websites can be added/updated/removed on demand, and all run on a single wicket application (wicket 1.5-based).

So far we've used custom css to override the look & feel for each websites, providing the websites with a selection of themes (css + images).

One of the features we're currently researching is to allow a theme to provide custom html to the wicket base page which is used for layout. We've also built a CMS in wicket, so using IMarkupResourceStreamProvider and IMarkupCacheKeyProvider is something we've done before.
So far, so good.

The problem is that we have various pages in the app which extend our base page (WebsiteLayout), and their markup is not refreshed once the layout changes it's theme (and thus has different html). Even though we return a different markup cache key (it's based on the theme ID), and a different markup resource stream, the new markup is never loaded.

I think it's due to the fact that pages which extend the layout also have their entire markup cached (MergedMarkup).

My original idea was to only provide a custom cache key for the layout, and let wicket handle everything else. Then, when the theme html is updated, we can simply remove that single cache key from the wicket markup cache, and it will be reloaded.

I think we can circumvent that by providing a custom markup cache key for all pages which extend the layout, but that creates a bit of a hassle for cleaning up the markup cache. It's doable (keep track of all cache keys generated for a theme, and remove all of them from the cache), but before we proceed I'd like some feedback from others: is this the way to go?

--

Met vriendelijke groet,
Kind regards,

Bas Gooren

Reply via email to