Hi all, I'm new to Wicket and developing my first Wicket website. I have some temporary objects created inside a users' session but needed by a parallel process which uses them outside the user session and I would like to avoid temporarily persisting them into a database.
I'm looking at using application scope objects but I'm not sure how to do it best in Wicket. I guess I should override the get() method of WebApplication mimicking the pattern used for custom Session objects. public class WicketApplication extends MyWebApplication { private Object applicationScopeObject; public WicketApplication() { setApplicationScopeObject( <init value> ); } @Override public static WicketApplication get() { return (WicketApplication) WebApplication.get(); } public Object getApplicationScopeObject(){ return this.applicationScopeObject; } public void setApplicationScopeObject( Object applicationScopeObject ){ this.applicationScopeObject = applicationScopeObject; } [...] } public class PageInsideUserSession { public PageInsideUserSession(){ [...] // object has already been initialized WicketApplication.get().setApplicationScopeObject( object ); } } public class PageOutsideUserSession { public PageOutsideUserSession(){ Object object = WicketApplication.get().getApplicationScopeObject(); [...] } } In my case synchronizing the access to the application scope object should not be needed. Is this approach correct (and efficient) or is there a better solution ? Should I maybe use a separate parent class (parent of WicketApplication and child of WebApplication) for overriding the get() method (in case the override interferes with something else in the framework) ? Cheers, Marvan -- Reza Marvan Spagnolo SW Engineer - Freelancer