commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert burrell donkin <>
Subject Re: [proxy] Commons-Lang Dependency...
Date Thu, 08 Sep 2005 14:50:23 GMT
On Thu, 2005-09-08 at 07:58 -0400, James Carman wrote:
> What is our policy on inter-project dependencies?  

i'm not sure that we have anything as grand as a policy: just a lot of
experience of creating long lived micro libraries. a lot of bitter
lessons have been learnt over the years.

> I just had to copy a
> method from commons-lang, because I didn't want to introduce a runtime
> dependency
> (
> cdf9h71$c9j$  That seems, as Henning pointed out,
> silly to me.  

copying a single method may seem silly now but it feels a lot worse when
(three years down the line) seemingly the whole java blogosphere is
shouting about how stupid you are because (for the sake of a single
method) you added a dependency (three years ago) and now a
thousand-and-one applications are now experiencing dependency hell...

IMHO it would be much better to have good way of doing this (maybe some
variation on jarjar) but at the moment, we're stuck with copying code.

> And, the commons-email release was shot down because of its
> dependence upon commons-lang.  The dependence in email, though, was exposed
> in the public API.  

i'm not sure that it was shot down (there may have been enough votes to
win the day) as much as people were persuaded that the change should be
made. stephen did the right thing in submitting a patch,

> In proxy, the dependence is upon the
> ClassUtils.getAllInterfaces() method inside a couple of class'
> implementations.  Is this okay?  Or, should I strive (as I already have
> done) to keep the dependencies to a minimum?  

when creating bricks, it's always best to keep the dependency graph as
small as possible. i prefer optional jars for non-core dependencies but
this is debated (some don't see the point of half a dozen 1k jars). 

> I do have a runtime dependency
> upon Commons Logging at this time also.

it's pretty hard to win when it comes to logging. JCL was created
because (in the end) libraries need to log and a single dependency on a
small bridging API seems better than the alternatives. 

- robert

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

View raw message