felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Closed: (FELIX-82) Dep Manager does not handle inherited callback methods right
Date Sat, 10 Feb 2007 02:54:07 GMT

     [ https://issues.apache.org/jira/browse/FELIX-82?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Richard S. Hall closed FELIX-82.
--------------------------------


> Dep Manager does not handle inherited callback methods right
> ------------------------------------------------------------
>
>                 Key: FELIX-82
>                 URL: https://issues.apache.org/jira/browse/FELIX-82
>             Project: Felix
>          Issue Type: Bug
>          Components: Dependency Manager
>            Reporter: Peter Neubauer
>         Assigned To: 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.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message