I am also facing the same issue -
It worked when attribute context-class-loader=”service-provider” is added with <osgi:service> (service provider).
It does not work when same attribute is added with <osgi:reference> (service consumer). This should also work as mentioned in Spring DM document.
Below is the code and configurations used -
Service provider:
Code:
package com.bundle8;
import com.common.IMyClassLoader;
public class MyClassLoader implements IMyClassLoader {
public void loadClass() {
try {
Object obj = Thread.currentThread().getContextClassLoader().loadClass("com.dummy.Dummy").newInstance();
System.out.println("Obj " + obj);
} catch (Exception e) {
e.printStackTrace();
}
}
Service consumer:
Code:
<osgi:reference id="service" interface="com.common.IMyClassLoader" context-class-loader="service-provider"/>
If required I will upload the source code and configuration files.
Regards,
Pranav