Hi, On Mon, Nov 14, 2016 at 3:58 AM, Илья Нарыжный <phan...@ydn.ru> wrote:
> Hello, > > We really need advise from Apache Wicket experts. Please let me know if you > have any ideas how to realize the following: > > We are working on Orienteer (http://orienteer.org) - open source Business > Application Platform for rapid development. > Orienteer already has pluggable architecture which allow to > start/stop/restart modules and etc. Every module can bring different > things: new webpages, REST, wicket components and etc. For example: > https://github.com/OrienteerBAP/Orienteer/tree/master/orienteer-pivottable > > But there is plans to allow dynamically upload required new module (without > recompiling whole WAR with new module). To upload person can literally > upload JAR or enter URL with the module or specify Maven's > groupId:artifactId:version. > > There is no problem with downloading of module: there is a problem with > runtime running it. Questions: > > 1) Is there good way for substitution of your own ClassLoader for more > dynamic management? > Wicket doesn't manage class loaders. The web container (like Tomcat) deals with this. The only hook provided by Wicket is org.apache.wicket.protocol. http.WicketFilter#getClassLoader(). See org.apache.wicket.protocol.http. ReloadingWicketFilter#reloadingClassLoader. > 2) Is there a way for restarting of wicket app without restarting a > web-container? > You may use WebApplication#initApplication() and #internalDestroy(). Also see what ReloadingWicketFilter does. > 3) Related to p.1: any good experience with using this: > https://github.com/kamranzafar/JCL ? > IMO this should work to load extra jars dynamically. I didn't see anything about unloading though. > 4) Any other suggetions how to make dynamically pluggable modules in > wicket? > Some people use OSGi (with PAX). I don't have much experience to be able to comment. > > Thanks, > > Ilya > > --------------------------------------------- > Orienteer(http://orienteer.org) - open source Business Application > Platform >