myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <skitch...@obsidium.com>
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 
feasable.

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.

Examples:
  * 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.

Regards,

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 <bdudney@mac.com> 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 org.apache.myfaces.custom.calendar.HtmlCalendarRenderer.java
>>> 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:
>>>   http://clirr.sourceforge.net/
>>> 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
>>>
>>
> 


Mime
View raw message