Class SandboxClassLoader
java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.robolectric.internal.bytecode.SandboxClassLoader
- All Implemented Interfaces:
Closeable,AutoCloseable,ClassTracker
- Direct Known Subclasses:
AndroidSandbox.SdkSandboxClassLoader
Class loader that modifies the bytecode of Android classes to insert calls to Robolectric's
shadow classes.
-
Constructor Summary
ConstructorsConstructorDescriptionSandboxClassLoader(ClassLoader erstwhileClassLoader, InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor) SandboxClassLoader(InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected InputStreamgetClassBytesFromAlternateClassLoader(String classResName) This exists to be overridden by the simulator class loader.getResource(String name) protected URLgetResourceUrl(String name) booleanisClassLoaded(String className) Class<?> Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstanceMethods inherited from class java.security.SecureClassLoader
defineClass, defineClassMethods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
SandboxClassLoader
@Inject public SandboxClassLoader(InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor) -
SandboxClassLoader
public SandboxClassLoader(ClassLoader erstwhileClassLoader, InstrumentationConfiguration config, ResourceProvider resourceProvider, ClassInstrumentor classInstrumentor)
-
-
Method Details
-
getResource
- Overrides:
getResourcein classClassLoader
-
getResourceUrl
-
getClassBytesFromAlternateClassLoader
This exists to be overridden by the simulator class loader. It allows the simulator class loader to prefer classes from the deploy jar (e.g. compiled resource jars) over classes from the runtime classpath. -
loadClass
- Overrides:
loadClassin classClassLoader- Throws:
ClassNotFoundException
-
isClassLoaded
- Specified by:
isClassLoadedin interfaceClassTracker
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classURLClassLoader- Throws:
IOException
-