[ http://issues.apache.org/jira/browse/FELIX-82?page=all ]
Marcel Offermans resolved FELIX-82:
-----------------------------------
Fix Version: 0.8.0
Resolution: Fixed
Extended the method to keep searching superclasses until a valid callback
method is found.
> Dep Manager does not handle inherited callback methods right
> ------------------------------------------------------------
>
> Key: FELIX-82
> URL: http://issues.apache.org/jira/browse/FELIX-82
> Project: Felix
> Type: Bug
> Components: Dependency Manager
> Reporter: Peter Neubauer
> Assignee: Marcel Offermans
> Fix For: 0.8.0
>
> This does not work for inherited classes as the reflection jsut works for the
> current type. In order to be abelt o define callback even in e.g. Abstract
> classes, one needs to go up the hirarchy in order to find these methods.
> /peter
> ServiceDependency
> ...
> invokeCallbackMethod
> private void invokeCallbackMethod( Object instance, String methodName,
> ServiceReference reference, Object service )
> throws NoSuchMethodException
> {
> Method method = null;
> Class clazz = instance.getClass();
> AccessibleObject.setAccessible( clazz.getDeclaredMethods(), true );
> try
> {
> try
> {
> method = clazz.getDeclaredMethod( methodName, new Class[] {
> ServiceReference.class, Object.class } );
> method.invoke( instance, new Object[] { reference, service }
> );
> }
> catch ( NoSuchMethodException e )
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira