public static class BundleWiringImpl.BundleClassLoader extends java.security.SecureClassLoader implements BundleReference
| Modifier and Type | Field and Description |
|---|---|
private static int |
LIBNAME_IDX |
private static int |
LIBPATH_IDX |
private java.lang.Object[][] |
m_cachedLibs |
private java.util.Map<java.lang.String,java.lang.Thread> |
m_classLocks |
private boolean |
m_isActivationTriggered |
private java.util.Map |
m_jarContentToDexFile |
private Logger |
m_logger |
private BundleWiringImpl |
m_wiring |
| Constructor and Description |
|---|
BundleClassLoader(BundleWiringImpl wiring,
java.lang.ClassLoader parent,
Logger logger) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
callWovenClassListeners(Felix felix,
java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners,
WovenClass wovenClass) |
(package private) java.lang.Class |
defineClass(Felix felix,
java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners,
WovenClassImpl wci,
java.lang.String name,
java.lang.Class clazz,
byte[] bytes,
Content content,
java.lang.String pkgName,
java.lang.Object lock) |
private java.lang.Object[] |
definePackage(java.lang.String pkgName) |
protected java.lang.Class |
findClass(java.lang.String name) |
protected java.lang.String |
findLibrary(java.lang.String name) |
protected java.net.URL |
findResource(java.lang.String name) |
protected java.util.Enumeration |
findResources(java.lang.String name) |
BundleImpl |
getBundle()
Returns the
Bundle object associated with this
BundleReference. |
private java.lang.Class |
getDexFileClass(JarContent content,
java.lang.String name,
java.lang.ClassLoader loader) |
java.net.URL |
getResource(java.lang.String name) |
boolean |
isActivationTriggered() |
protected boolean |
isParallel() |
protected java.lang.Class |
loadClass(java.lang.String name,
boolean resolve) |
java.lang.String |
toString() |
(package private) void |
transformClass(Felix felix,
WovenClassImpl wci,
java.util.Set<ServiceReference<WeavingHook>> hooks,
java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners,
java.lang.String name,
byte[] bytes) |
defineClass, defineClass, getPermissions, getProtectionDomainclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getProtectionDomainInternal, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignersprivate volatile boolean m_isActivationTriggered
private final java.util.Map m_jarContentToDexFile
private java.lang.Object[][] m_cachedLibs
private static final int LIBNAME_IDX
private static final int LIBPATH_IDX
private final java.util.Map<java.lang.String,java.lang.Thread> m_classLocks
private final BundleWiringImpl m_wiring
private final Logger m_logger
public BundleClassLoader(BundleWiringImpl wiring, java.lang.ClassLoader parent, Logger logger)
protected boolean isParallel()
public boolean isActivationTriggered()
public BundleImpl getBundle()
BundleReferenceBundle object associated with this
BundleReference.getBundle in interface BundleReferenceBundle object associated with this
BundleReference.protected java.lang.Class loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionprotected java.lang.Class findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionjava.lang.Class defineClass(Felix felix, java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, java.lang.String name, java.lang.Class clazz, byte[] bytes, Content content, java.lang.String pkgName, java.lang.Object lock) throws java.lang.ClassFormatError
java.lang.ClassFormatErrorvoid transformClass(Felix felix, WovenClassImpl wci, java.util.Set<ServiceReference<WeavingHook>> hooks, java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners, java.lang.String name, byte[] bytes) throws java.lang.Error
java.lang.Errorprotected void callWovenClassListeners(Felix felix, java.util.Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClass wovenClass)
private java.lang.Object[] definePackage(java.lang.String pkgName)
private java.lang.Class getDexFileClass(JarContent content, java.lang.String name, java.lang.ClassLoader loader) throws java.lang.Exception
java.lang.Exceptionpublic java.net.URL getResource(java.lang.String name)
getResource in class java.lang.ClassLoaderprotected java.net.URL findResource(java.lang.String name)
findResource in class java.lang.ClassLoaderprotected java.util.Enumeration findResources(java.lang.String name)
findResources in class java.lang.ClassLoaderprotected java.lang.String findLibrary(java.lang.String name)
findLibrary in class java.lang.ClassLoaderpublic java.lang.String toString()
toString in class java.lang.Object