Return-Path: X-Original-To: apmail-felix-dev-archive@www.apache.org Delivered-To: apmail-felix-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0703A173DB for ; Wed, 15 Apr 2015 08:39:05 +0000 (UTC) Received: (qmail 14368 invoked by uid 500); 15 Apr 2015 08:38:58 -0000 Delivered-To: apmail-felix-dev-archive@felix.apache.org Received: (qmail 14305 invoked by uid 500); 15 Apr 2015 08:38:58 -0000 Mailing-List: contact dev-help@felix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@felix.apache.org Delivered-To: mailing list dev@felix.apache.org Received: (qmail 14103 invoked by uid 99); 15 Apr 2015 08:38:58 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 15 Apr 2015 08:38:58 +0000 Date: Wed, 15 Apr 2015 08:38:58 +0000 (UTC) From: "Carlos Sierra (JIRA)" To: dev@felix.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (FELIX-4853) Create a new ServiceDependency that sets the TCCL to the incoming servicereference bundle's classloader before invoking callbaks MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Carlos Sierra created FELIX-4853: ------------------------------------ Summary: 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)