[
https://issues.apache.org/jira/browse/LANG-1195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15315532#comment-15315532
]
ASF GitHub Bot commented on LANG-1195:
--------------------------------------
Github user Derek-Ashmore commented on the issue:
https://github.com/apache/commons-lang/pull/141
Hi Pascal,
I'm not sure I did the re-base part correctly. Both my forked master and
LANG-1195 have all changes we discussed and are based on the updated master.
All conflicts were resolved and "I think"; you've obviously done this more than
I have and I trust your judgement. Please let me know if you see problems with
what I've done. Thanks for looking at this.
> Enhance MethodUtils to allow invocation of private methods
> -----------------------------------------------------------
>
> Key: LANG-1195
> URL: https://issues.apache.org/jira/browse/LANG-1195
> Project: Commons Lang
> Issue Type: Improvement
> Components: lang.reflect.*
> Environment: not environment specific
> Reporter: Derek C. Ashmore
> Priority: Minor
> Fix For: 3.5
>
>
> Currently, MethodUtils is restricted to finding and invoking accessible
> methods. Frequently, developers have a need to test 'private' methods. What
> I see is that they escalate access to 'protected' in order to more easily
> provide test coverage for these methods. From a design perspective, this is
> bad.
> I propose to enhance MethodUtils so that it can easily invoke private
> methods. I'm not suggesting that developers should do this in production
> code, merely test code. Much as FieldUtils provides access to private fields
> via the 'forceAccess' overload on many of its methods. I've copied a utility
> like this around for years. It would be much more convenient to simply
> include it with Commons Lang. I propose adding the following overloads to
> existing methods on MethodUtils.
> public static Object invokeMethod(final Object object, final boolean
> forceAccess, final String methodName)
> throws NoSuchMethodException, IllegalAccessException,
> InvocationTargetException
>
> public static Object invokeMethod(final Object object, final boolean
> forceAccess, final String methodName,
> Object... args) throws NoSuchMethodException,
> IllegalAccessException, InvocationTargetException
>
> public static Object invokeMethod(final Object object, final boolean
> forceAccess, final String methodName,
> Object[] args, Class<?>[] parameterTypes)
> throws NoSuchMethodException, IllegalAccessException,
> InvocationTargetException
>
> Furthermore, I propose the following new method for finding private methods
> patterned after getAccessibleMatchingMethod:
> public static Method getMatchingMethod(final Class<?> cls, final String
> methodName,
> final Class<?>... parameterTypes)
> I have, in fact, forked your github repository and coded this enhancement as
> well as unit test coverage for this. I'll add a comment to this ticket once
> I get a branch in my fork created and the enhancement checked in. Every
> effort has been made to adhere to your coding conventions. Thanks for
> looking at this.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)