myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <>
Subject Re: RC3: dependency on commons-lang
Date Wed, 19 Oct 2005 03:22:40 GMT
Hi guys,

Well, you should check out some of the email discussions held on 
commons-dev about this. The general conclusion was that even commons 
components should avoid dependencies on other commons components where 

Obviously copying large chunks of another library isn't a good idea. But 
where just a class or two was used it was decided that copying was less 
evil than a dependency.

  * commons-beanutils has been modified to avoid a
    dependency on collections.
  * commons-digester has been modified to avoid a dependency on
    collections. But its dependency on beanutils continues because
    it uses quite a lot of beanutils.

I know there are other cases in commons though I can't remember which 
for the moment.

Commons can be thought of as a "collection of code snippets" available 
for copying as well as a library. The main commons-collections 
maintainer is on record as being happy with this.


Simon (maintainer of commons-digester + commons-logging).

Sean Schofield wrote:
> I agree with Bill on that one.  I was suprised to see that this
> dependency had been introduced (after we had avoided it for so long)
> but I don't think its a big deal.
> sean
> On 10/18/05, Bill Dudney <> wrote:
>> I respectfully disagree, there is no way I want us copying
>> functionality from commons-lang into myfaces.
>> -bd-
>> On Oct 18, 2005, at 6:47 PM, Simon Kitching wrote:
>>> Hi,
>>> Class
>>> has had a dependency on commons-lang added. This means that my app
>>> which previously worked fine now fails with a NoClassDefFoundError.
>>> The dependency was introduced by r289859 (mmarinschek) on 2005-09-18.
>>> I would recommend removing dependencies on commons-lang if
>>> possible. It's always nice for a library such as myfaces to keep
>>> its dependencies as small as possible.
>>> I've searched for "org.apache.commons.lang" and found the following
>>> classes currently depend on it:
>>>   HtmlCalendarRenderer (method EscapeUtils.escapeJavaScript)
>>>   HtmlJsValueSetRenderer (same)
>>>   JspStateManagerImpl  (EqualsBuilder and HashCodeBuilder)
>>> I think it's quite feasable for myfaces to copy this o.a.c.lang
>>> functionality into the myfaces project.
>>> On the general topic of binary compatibility, may I recommend the
>>> CLIRR project:
>>> Given two jars it will tell you whether they are binary compatible
>>> or not. It also generates a nice report of the API changes made
>>> which can be useful for creating release notes.
>>> Regards,
>>> Simon

View raw message