public class WeavingClassLoader extends KilimClassLoader
| Modifier and Type | Class and Description |
|---|---|
static interface |
WeavingClassLoader.Excludable |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
KILIM_CLASSPATH |
| Constructor and Description |
|---|
WeavingClassLoader() |
WeavingClassLoader(java.lang.ClassLoader loader,
java.net.URLClassLoader $proxy) |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Class<?> |
define(java.lang.String name,
byte[] code) |
WeavingClassLoader |
exclude(WeavingClassLoader.Excludable exclude)
replace the exclude filter which determines whether a named class should be defined
definitively by this loader or instead delegated to the parent loader.
|
protected java.lang.Class<?> |
findClass(java.lang.String name) |
static byte[] |
findCode(java.lang.ClassLoader loader,
java.lang.String name)
read bytecode for the named class from a source classloader
|
static java.io.InputStream |
getByteStream(java.lang.ClassLoader cl,
java.lang.String name,
java.lang.String cname,
boolean system) |
java.io.InputStream |
getResourceAsStream(java.lang.String cname) |
static java.net.URL[] |
getURLs(java.lang.String[] classPaths) |
java.lang.Class<?> |
loadClass(java.lang.String name,
boolean resolve) |
static java.lang.String |
makeResourceName(java.lang.String name)
convert a fully qualified class name to a resource name.
|
static byte[] |
readFully(FileLister.Entry fe) |
static byte[] |
readFully(java.io.InputStream is) |
void |
run(java.lang.String className,
java.lang.String method,
java.lang.String... args)
run static method className.method(args) using reflection and this WeavingClassLoader
|
static java.lang.String |
unmakeResourceName(java.lang.String cname) |
java.net.URL |
url(java.lang.String name) |
ClassWeaver |
weaveClass(java.lang.String name)
load the bytecode for a class of a given name from the classpath and weave it
|
isLoadedclearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findLibrary, findLoadedClass, findResource, findResources, findSystemClass, getClassLoadingLock, getPackage, getPackages, getParent, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, registerAsParallelCapable, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSignerspublic static final java.lang.String KILIM_CLASSPATH
public WeavingClassLoader()
public WeavingClassLoader(java.lang.ClassLoader loader,
java.net.URLClassLoader $proxy)
public static byte[] readFully(java.io.InputStream is)
public java.io.InputStream getResourceAsStream(java.lang.String cname)
getResourceAsStream in class java.lang.ClassLoaderpublic static java.net.URL[] getURLs(java.lang.String[] classPaths)
public void run(java.lang.String className,
java.lang.String method,
java.lang.String... args)
throws java.lang.Exception
java.lang.Exceptionpublic WeavingClassLoader exclude(WeavingClassLoader.Excludable exclude)
exclude - the filter to runpublic java.lang.Class<?> loadClass(java.lang.String name,
boolean resolve)
throws java.lang.ClassNotFoundException
loadClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionpublic static java.io.InputStream getByteStream(java.lang.ClassLoader cl,
java.lang.String name,
java.lang.String cname,
boolean system)
public ClassWeaver weaveClass(java.lang.String name)
name - the fully qualified class nameprotected java.lang.Class<?> findClass(java.lang.String name)
throws java.lang.ClassNotFoundException
findClass in class java.lang.ClassLoaderjava.lang.ClassNotFoundExceptionpublic java.lang.Class<?> define(java.lang.String name,
byte[] code)
public static java.lang.String makeResourceName(java.lang.String name)
name - as returned by Class.getNamepublic static java.lang.String unmakeResourceName(java.lang.String cname)
public static byte[] findCode(java.lang.ClassLoader loader,
java.lang.String name)
loader - the classloader to get the bytecode from, or null for the current classloadername - the internal name for the class as would be passed to loadClasspublic java.net.URL url(java.lang.String name)
public static byte[] readFully(FileLister.Entry fe) throws java.io.IOException
java.io.IOException