Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
BundleProxyClassLoader recipe
Revision as of 15:20, 7 June 2006 by Simon.kaegi.cognos.com (Talk | contribs)
import java.io.IOException; import java.net.URL; import java.util.Enumeration; import org.osgi.framework.Bundle; public class BundleProxyClassLoader extends ClassLoader { private Bundle bundle; public BundleProxyClassLoader(Bundle bundle) { this.bundle = bundle; } // Note: Both ClassLoader.getResources(...) and bundle.getResources(...) consult // the boot classloader. As a result, BundleProxyClassLoader.getResources(...) // might return duplicate results from the boot classloader. Prior to Java 5 // Classloader.getResources was marked final. If your target environment requires // at least Java 5 you can prevent the occurence of duplicate boot classloader // resources by overriding ClassLoader.getResources(...) instead of // ClassLoader.findResources(...). public Enumeration findResources(String name) throws IOException { return bundle.getResources(name); } public URL getResource(String name) { return bundle.getResource(name); } public Class loadClass(String name) throws ClassNotFoundException { return bundle.loadClass(name); } }