[ 
https://issues.apache.org/jira/browse/FELIX-4853?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14499447#comment-14499447
 ] 

Carlos Sierra commented on FELIX-4853:
--------------------------------------

Hey Pierre, 

thank you very much for you fast and complete reply. I will try to wrap my head 
about what you wrote and will come back to you.

Bests.

> Create a new ServiceDependency that sets the TCCL to the incoming 
> servicereference bundle's classloader before invoking callbaks
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-4853
>                 URL: https://issues.apache.org/jira/browse/FELIX-4853
>             Project: Felix
>          Issue Type: New Feature
>          Components: Dependency Manager
>    Affects Versions: dependencymanager-3.2.0
>            Reporter: Carlos Sierra
>
> The invoke method would go like this:
> {code:title=TCCLServiceDependencyImpl.java|borderStyle=solid}
>         @Override
>       @SuppressWarnings("rawtypes")
>       public void invoke(
>               Object[] callbackInstances, DependencyService dependencyService,
>                 ServiceReference reference, Object service, String name) {
>               Bundle bundle = reference.getBundle();
>               BundleWiring bundleWiring = bundle.adapt(BundleWiring.class);
>               ClassLoader bundleClassLoader = bundleWiring.getClassLoader();
>               Thread currentThread = Thread.currentThread();
>               ClassLoader contextClassLoader = 
> currentThread.getContextClassLoader();
>               currentThread.setContextClassLoader(bundleClassLoader);
>               try {
>                       super.invoke(
>                               callbackInstances, dependencyService, 
> reference, service, name);
>               }
>               finally {
>                       currentThread.setContextClassLoader(contextClassLoader);
>               }
>       }
> {code}
> If you think this is useful I can provide a patch. Which version and which 
> repo should I use for it?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to