commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <>
Subject Re: [digester] dependencies for 1.6 release
Date Sun, 25 Jul 2004 05:07:53 GMT
On Fri, 2004-07-23 at 11:56, Simon Kitching wrote:
> On Fri, 2004-07-23 at 10:09, robert burrell donkin wrote:
> > On 22 Jul 2004, at 01:27, Simon Kitching wrote:
> > > On Thu, 2004-07-22 at 08:54, robert burrell donkin wrote:
> > 
> > 
> > 
> > > I'm not generally a great supporter of binary compatibility. I think if
> > > you intend to ship a new release of a library, then you really need a
> > > testing cycle. And if you're doing that, a recompile is no big deal.
> > 
> > i see binary compatibility as absolutely crucial for deep libraries 
> > such as digester. digester is in the root classpath of many containers. 
> > this means that contained applications can only use binary compatible 
> > versions of the library (unless they plan to recompile the application, 
> > that is). so, releasing a binary incompatible version of digester is 
> > likely to cause real pain for many users.
> Ok, the container issue is one I overlooked.
> This java library versioning problem is looking nastier and nastier the
> more I learn about it. Maybe .NET got it right with its versioned
> library schema, and Java needs to adopt something like that...

I've thought some more about this.

Why exactly would a container expose Digester to the "containees"?

If a container wants to use Digester to parse its configuration files,
then that is an internal matter for that container, and the Digester lib
(plus all that it depends upon) should be loaded by a container-specific
classloader that isn't exposed to the containees.

And with that setup, we don't need to be *overly* concerned about binary
compatibility. The container uses version X of Digester, and each
containee uses their own version.

Surely exposing a library that is only used for internal purposes within
a container is poor design - even worse than exposing private methods
and variables.

Do you know of any containers that actually do use Digester and make it
visible to containee code?



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message