Hi Jeff,

Thank you very much for the detailed outline.
The reason why I wanted to use a central library was that I wanted to 
prevent different versions of my core libs haunting the contexts of the 
Tomcat server.  So you're suggested solution would be to leave it up to 
the separate contexts to update and use the newer lib files.

The only drawback of this "terms of use" is, that you have one component n 
times installed across the various contexts of the Tomcat. This was what I 
wanted to avoid....

So to use both ideas, what about the following:
*) central repository of all versions of all helper jar files
/{$tomcat_home}/repository/v1.jar
/{$tomcat_home}/repository/v2.jar

*) each application context picks the version it likes to use
/{$tomcat_home}/webapps/myapp/WEB-INF/lib/<link to v1.jar>
/{$tomcat_home}/webapps/myapp2/WEB-INF/lib/<link to v2.jar>

Do you think the approach outlined above makes sense?
I think this would reduce the "scattered" library version troubles and it 
would even be possible to search all the contexts to find out which 
versions are used.

Thx for your feedback
Johannes




"Jeff Jensen" <[EMAIL PROTECTED]> 
22.03.2003 16:44
Please respond to
"Tomcat Users List" <[EMAIL PROTECTED]>


To
"'Tomcat Users List'" <[EMAIL PROTECTED]>
cc

Subject
RE: Reloading shared/lib JAR files?






Also, from a release management standpoint, the risk is the dependency of
all the apps on the specific versions of the jars in shared/lib.  Meaning,
if one app needs a newer version of a shared component placed in 
shared/lib,
then all are forced to upgrade as well.  Timing on upgrading the other 
apps
is not usually so helpful, particularly when needing even a small coding
change!

It is typically better to use the source control tool to integrate 
specific
versions of shared components into its own codeline - so the codeline is
complete without external dependencies (reproducible builds from the 
source
tree).  If it is a 3rd party component, check-in the distributables and
integrate/merge the right versions of them into your different product
codelines.  If it is your own component, do the same - check-in the
distributables.  For deployment, as part of the normal 
build/package/deploy
process, place the shared components in WEB-INF/lib so each app can have 
its
own version.

As Tim says, this would "rethink the design" and solve the problem by not
having anything in shared/lib.  At the same time, eliminating a potential
cross-application dependency problem.

Disclaimer - there may be something in your environment that forces you to
use shared/lib (or possibly never even have an upgrade problem), whether
technical (can't think of much other than large footprint jars) or
"political" ;-)

Your mileage may vary.


> -----Original Message-----
> From: Tim Funk [mailto:[EMAIL PROTECTED]
> Sent: Saturday, March 22, 2003 8:50 AM
> To: Tomcat Users List
> Subject: Re: Reloading shared/lib JAR files?
>
>
> If you redeploy jars into /shared/lib - they will not be
> reloaded on a
> webapp reload and there is no way to reload them(except a
> stop/start of
> tomcat). But jars/classes in WEB-INF/ can be reloaded.
>
> If you have jars in shared/lib that need reloaded when an webapp is
> reloaded - you might need to rethink the design of those shared libs.
>
> -Tim
>
> Johannes Fiala wrote:
> > Hi there,
> >
> > I know it is possible to reload a web-application using the
> manager app
> > (especially the JAR-files in WEB-INF/lib).
> > Is it possible to also include the shared/lib directory?
> >
> > We have some helper JARs, which are used by four web
> contexts, so I'd
> > prefer to put them into /shared/lib.
> > However, if it doesn't get reloaded after an update of
> /shared/lib, I have
> > no means to perform a hot redeploy if only the JAR files change.
> >
> > thx alot
> > Johannes


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to