public class BundleClassLoader extends ClassLoader implements DelegatingBundleReference
Bundle
.
Bundle.getResource(String)
or
Bundle.getResources(String)
does not return the resources found in the wired bundles of the bundle
(wired via Import-Package or DynamicImport-Package). This class loader implementation provides
#getResource(String) and {@link #getResources(String)} methods that do delegate such resource lookups to
the wired bundles.
Modifier and Type | Field and Description |
---|---|
protected org.osgi.framework.Bundle |
bundle |
protected BundleResourceHelper |
resourceHelper |
Constructor and Description |
---|
BundleClassLoader(org.osgi.framework.Bundle bundle) |
BundleClassLoader(org.osgi.framework.Bundle bundle,
boolean searchWiredBundles) |
BundleClassLoader(org.osgi.framework.Bundle bundle,
boolean searchWiredBundles,
boolean convertResourceUrls) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other) |
Enumeration<URL> |
findResources(String name) |
org.osgi.framework.Bundle |
getBundle()
Return the bundle associated with this classloader.
|
org.osgi.framework.Bundle |
getBundle(boolean unwrap)
Return the bundle associated with this classloader.
|
boolean |
getConvertResourceUrls() |
URL |
getResource(String name) |
Enumeration<URL> |
getResources(String name) |
boolean |
getSearchWiredBundles() |
int |
hashCode() |
protected Class<?> |
loadClass(String name,
boolean resolve) |
void |
setConvertResourceUrls(boolean convert) |
void |
setSearchWiredBundles(boolean search) |
String |
toString() |
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResourceAsStream, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
protected final org.osgi.framework.Bundle bundle
protected final BundleResourceHelper resourceHelper
public BundleClassLoader(org.osgi.framework.Bundle bundle)
public BundleClassLoader(org.osgi.framework.Bundle bundle, boolean searchWiredBundles)
public BundleClassLoader(org.osgi.framework.Bundle bundle, boolean searchWiredBundles, boolean convertResourceUrls)
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
loadClass
in class ClassLoader
ClassNotFoundException
public URL getResource(String name)
getResource
in class ClassLoader
public Enumeration<URL> getResources(String name) throws IOException
getResources
in class ClassLoader
IOException
public Enumeration<URL> findResources(String name) throws IOException
findResources
in class ClassLoader
IOException
public void setSearchWiredBundles(boolean search)
public boolean getSearchWiredBundles()
public void setConvertResourceUrls(boolean convert)
public boolean getConvertResourceUrls()
public org.osgi.framework.Bundle getBundle(boolean unwrap)
DelegatingBundle
.
In such cases, the unwrap parameter controls whether this function returns the
DelegatingBundle
instance or the main application bundle backing with the DelegatingBundle
.getBundle
in interface DelegatingBundleReference
unwrap
- If true and if the bundle associated with this classloader is a DelegatingBundle
,
this function will return the main application bundle backing with the DelegatingBundle
.
Otherwise, the bundle associated with this classloader is returned as is.public org.osgi.framework.Bundle getBundle()
getBundle(true)
and therefore always returns a regular
framework bundle.
BundleReference.getBundle()
to obtain a bundle for the given
classloader and expect the returned bundle instance to be work with any OSGi API. Some of these API might
not work if DelegatingBundle
is returned. That is why this function will always return
a regular framework bundle. See getBundle(boolean)
for more information.getBundle
in interface org.osgi.framework.BundleReference
Copyright © 2005-2019. All Rights Reserved.