Package org.apache.felix.framework
Class BundleWiringImpl.BundleClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
org.apache.felix.framework.BundleWiringImpl.BundleClassLoader
- All Implemented Interfaces:
BundleReference
- Enclosing class:
BundleWiringImpl
public static class BundleWiringImpl.BundleClassLoader
extends SecureClassLoader
implements BundleReference
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final intprivate Object[][]private final ConcurrentHashMap<String, Thread> private boolean(package private) static final booleanprivate final Loggerprivate final BundleWiringImpl -
Constructor Summary
ConstructorsConstructorDescriptionBundleClassLoader(BundleWiringImpl wiring, ClassLoader parent, Logger logger) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcallWovenClassListeners(Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClass wovenClass) (package private) Class<?> defineClass(Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, String name, byte[] bytes, Content content, String pkgName) (package private) Class<?> defineClassNotParallel(String name, Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, byte[] bytes, Content content, String pkgName) (package private) Class<?> defineClassParallel(String name, Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, byte[] bytes, Content content, String pkgName) private Object[]definePackage(String pkgName) protected Class<?> protected StringfindLibrary(String name) (package private) Class<?> protected URLfindResource(String name) protected Enumeration<URL> findResources(String name) Returns theBundleobject associated with thisBundleReference.getResource(String name) getResources(String name) booleanprotected booleanprotected Class<?> private static booleantoString()(package private) voidtransformClass(Felix felix, WovenClassImpl wci, Set<ServiceReference<WeavingHook>> hooks, Set<ServiceReference<WovenClassListener>> wovenClassListeners, String name, byte[] bytes) Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass, getPermissionsMethods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResourceAsStream, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Field Details
-
m_isParallel
static final boolean m_isParallel -
m_isActivationTriggered
private volatile boolean m_isActivationTriggered -
m_cachedLibs
-
LIBNAME_IDX
private static final int LIBNAME_IDX- See Also:
-
LIBPATH_IDX
private static final int LIBPATH_IDX- See Also:
-
m_classLocks
-
m_wiring
-
m_logger
-
-
Constructor Details
-
BundleClassLoader
-
-
Method Details
-
registerAsParallel
@IgnoreJRERequirement private static boolean registerAsParallel() -
isActivationTriggered
public boolean isActivationTriggered() -
getBundle
Description copied from interface:BundleReferenceReturns theBundleobject associated with thisBundleReference.- Specified by:
getBundlein interfaceBundleReference- Returns:
- The
Bundleobject associated with thisBundleReference.
-
loadClass
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
findClass
- Overrides:
findClassin classClassLoader- Throws:
ClassNotFoundException
-
defineClassParallel
Class<?> defineClassParallel(String name, Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, byte[] bytes, Content content, String pkgName) throws ClassFormatError - Throws:
ClassFormatError
-
defineClassNotParallel
Class<?> defineClassNotParallel(String name, Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, byte[] bytes, Content content, String pkgName) throws ClassFormatError - Throws:
ClassFormatError
-
defineClass
Class<?> defineClass(Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClassImpl wci, String name, byte[] bytes, Content content, String pkgName) throws ClassFormatError - Throws:
ClassFormatError
-
transformClass
void transformClass(Felix felix, WovenClassImpl wci, Set<ServiceReference<WeavingHook>> hooks, Set<ServiceReference<WovenClassListener>> wovenClassListeners, String name, byte[] bytes) throws Error - Throws:
Error
-
callWovenClassListeners
protected void callWovenClassListeners(Felix felix, Set<ServiceReference<WovenClassListener>> wovenClassListeners, WovenClass wovenClass) -
definePackage
-
getResource
- Overrides:
getResourcein classClassLoader
-
findResource
- Overrides:
findResourcein classClassLoader
-
findResources
- Overrides:
findResourcesin classClassLoader
-
findLibrary
- Overrides:
findLibraryin classClassLoader
-
isParallel
protected boolean isParallel() -
getResources
- Overrides:
getResourcesin classClassLoader
-
toString
-
findLoadedClassInternal
-