Dear Mark, Rainer, Konstantin, Sylvain,

Thank you for your answers. (and for Tomcat ;-)

Regards, R.


2010/8/5 Sylvain Laurent <sylvain.laur...@m4x.org>
>
> I see 2 options for your case :
>
> - either use JRebel which allows to reload classes even in jars that would be 
> the common or shared classloaded (I use it all the times, it's fabulous and 
> pays for itself very quickly)
> - or try JBoss which has a Unified Class Loader, and as far as I understood 
> it, it tries to share classes between applications while allowing reloads (I 
> never used it in this way though)
>
> Regards,
> Sylvain
>
> On 5 août 2010, at 12:57, Lohner Roland wrote:
>
> > Dear Mark, Rainer, Konstantin,
> >
> > Thank you for your fast and detailed answers.
> >
> > You are right, the proposal is erroneous. However my intention was not to
> > give an excellent implementation solving the problem, but to start a
> > conversation about it and to provide a 0th approach, which can be reworked,
> > refined by developers who have detailed insight in the Tomcat system
> > architecture.
> >
> > You suggested the usage of the common or the shared class loader. Putting
> > all interfaces, and _all the classes they need_, into a separate JAR and
> > putting this JAR into ${catalina.base}/lib would really solve the problem.
> > But this solution has a serious disadvantage.
> >
> > The disadvantage appears in development time. The common and the shared
> > class loaders – as far as I know – are not reloadable. This means if any of
> > the classes loaded by them changes the whole Tomcat server and so even all
> > another independent web applications must be restarted for the changes to
> > take effect. The number of shared interfaces and their dependent classes can
> > be remarkable. When these types change, a full restart is needed instead of
> > some web application reloads, which is supported by widely applied
> > development tools like Web Tools Platform (WTP) Project. The full restart
> > means extra overheat increasing the turnaround time of development cycles.
> >
> > An another, only minor problem is that the deployment of the application
> > fallen to pieces must be done manually (increasing turnaround delay again).
> > WTP for example does not support the deployment of jar files in arbitrary
> > folders but only deployment of war files to a ‘webapps like’ folder.
> >
> > Turnaround time of development cycles is a significant factor in the costs
> > of a software solution. Accordingly, the possibility of using shared classes
> > in a reloadable (and by development tools supported) way would be valuable
> > in Tomcat.
> >
> > Regards,
> > Roland
> >
> >
> > 2010/8/3 Konstantin Kolinko <knst.koli...@gmail.com>
> >
> >> 2010/8/3 Lohner Roland <loc...@gmail.com>:
> >>> Dear Developers,
> >>>
> >>> I am writing about a proposal for a new feature in Tomcat.
> >>>
> >>
> >> (...)
> >>
> >>> so the only solution at the
> >>> moment is to use a J2EE container and deploy an enterprise module which
> >>> causes unnecessary overheat.
> >>
> >> I think the following should work:
> >>
> >> 1. Separate the interfaces, and _all the classes they need_,
> >> into a separate JAR.
> >> 2. Put the JAR into ${catalina.base}/lib.
> >> 3. _Remove_ all those shared classes from web applications!
> >> (Because otherwise classes loaded from web applications have priority
> >> over the shared ones, as explained in
> >> http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html
> >> )
> >>
> >> 4. If you need some shared service, place it into JNDI
> >> (GlobalNamingResources element in server.xml).
> >> You can also add a Listener to server.xml to preload some classes or
> >> instantiate any static object.
> >>
> >> 5. Restart Tomcat.
> >>
> >>>
> >>> A less elaborate, hackish, but basically working implementation of this
> >>> special web application class loader is attached to this email.
> >>
> >> The attachment was removed by mailing list software.
> >> Maybe if you rename it to *.txt it will be allowed, but it is just a guess.
> >> Anyway, if it works how you describe it it seeks for trouble.  A web
> >> application and be unloaded (stopped, reloaded) at any time. Since
> >> that moment any classes loaded by its classloader should not be
> >> accesses any more. Thus, no other web applications should keep
> >> references to them.
> >>
> >>
> >> Best regards,
> >> Konstantin Kolinko
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> >> For additional commands, e-mail: dev-h...@tomcat.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to