[ 
https://issues.apache.org/jira/browse/LANG-416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12579512#action_12579512
 ] 

Matt Benson commented on LANG-416:
----------------------------------

I understand where you're coming from, but I really don't see a big problem 
here.  "Fundamental stuff to help Java developers work with the core APIs" 
sounds like the mission statement of Lang to me.  If you check the SVN history 
of MethodUtils in BeanUtils, RBD commented in there five years ago to the 
effect that Lang wanted MethodUtils.  Seems like this is long overdue.  I'm 
sure there are other examples of small code duplications among Commons 
subprojects to avoid dependencies like the one BeanUtils already doesn't have 
on Lang.  It is possible to introduce the dependency, of course, but it is 
equally possible to augment the documentation of these classes in BeanUtils to 
indicate that they are intended primarily for use in conjunction with, or 
preferably by, BeanUtils and that more general-purpose replacement classes are 
to be found in Commons Lang.  Bottom line is, if you need this code, BeanUtils 
is a fairly focused API from which to have to get it.  I conceptualize Commons 
projects as being tiered anyway:  Lang, IO, Collections, Pool... these are 
bottom-tier projects that basically just provide library code.  On the next 
tier you have things like JXPath, DBCP, Configuration that depend upon other 
Commons APIs.  These are more convenient APIs which, when used as simply as 
possible, still DO something, if you will.  BeanUtils is somewhere in between, 
IMO.  It doesn't do much, relative to some of the true "second-tier" 
components, but it arguably does more than Lang or IO.  MethodUtils, etc. seem 
to fall into that first-tier category.  BeanUtils is relatively much to 
"inherit" just to use these classes.

> Import MethodUtils and ConstructorUtils from BeanUtils
> ------------------------------------------------------
>
>                 Key: LANG-416
>                 URL: https://issues.apache.org/jira/browse/LANG-416
>             Project: Commons Lang
>          Issue Type: New Feature
>    Affects Versions: 2.4
>            Reporter: Matt Benson
>             Fix For: 3.0
>
>
> Mentioned on the mailing list...  After we release 2.4 I'd like to:
> - import ConstructorUtils
> - make CU.getMatchingAccessibleConstructor() public
> - import MethodUtils
> - factor best-match calculation code out of MethodUtils into abstract 
> superclass MemberUtils, make ConstructorUtils extend MemberUtils and use the 
> same code (be on the lookout for ways to improve best-match calcs; my 
> original description was based on javadoc that said the first matching method 
> encountered was used, but this comment seems to have been outdated). 
> - merge any other duplicate (or near-duplicate) code from CU/MethodU into 
> MemberU and remove anything else that doesn't make sense in the context of 
> Lang.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to