|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.lang.ClassLoader
org.jboss.aop.standalone.SystemClassLoader
public class SystemClassLoader
A classloader that can be installed as the system classloader to enable aop translation based on files in META-INF/jboss-aop.xml in the classpath.
You will need the following jars in your classpath (log4j.jar is optional):
java -Djava.system.class.loader=org.jboss.aop.standalone.SystemClassLoader my.MainImplementation Detail: All access to non-jre classes must be done through reflection the classes must be loaded using the loadLocally method.
| Constructor Summary | |
|---|---|
SystemClassLoader(ClassLoader parent)
Construct a new system classloader. |
|
| Method Summary | |
|---|---|
protected Class<?> |
defineClassFromBytes(String name,
org.jboss.aop.standalone.SystemClassLoader.ClassBytes bytes,
boolean resolve)
Define a class from the bytes |
protected void |
definePackage(String className)
Define the package for the class if not already done |
protected void |
initialize()
Initialize the aspect manager and load the static aspects |
protected void |
install()
Install the classloader, get reflection objects and load classes using ourself. |
Class<?> |
loadClass(String name,
boolean resolve)
Load a class, overridden to transform aop enhanced classes and load non jre classes through this classloader. |
protected Class<?> |
loadClassByDelegation(String name)
Load jre classes from the parent classloader |
protected org.jboss.aop.standalone.SystemClassLoader.ClassBytes |
loadClassBytes(String name)
Load the bytecode for a class |
protected Class<?> |
loadClassLocally(String name)
Load a class using this classloader only |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public SystemClassLoader(ClassLoader parent)
We cannot do much here, we need to avoid recursion
parent - the default system classloader| Method Detail |
|---|
public Class<?> loadClass(String name,
boolean resolve)
throws ClassNotFoundException
loadClass in class ClassLoadername - the class nameresolve - whether to resolve the class
ClassNotFoundException - when there is no class
protected org.jboss.aop.standalone.SystemClassLoader.ClassBytes loadClassBytes(String name)
throws ClassNotFoundException,
IOException
ClassNotFoundException
IOException
protected Class<?> defineClassFromBytes(String name,
org.jboss.aop.standalone.SystemClassLoader.ClassBytes bytes,
boolean resolve)
b - the bytecoderesolve - whether to resolve the classprotected void definePackage(String className)
name - the class name
protected Class<?> loadClassLocally(String name)
throws ClassNotFoundException
name - the class name
ClassNotFoundException - when there is no class
protected Class<?> loadClassByDelegation(String name)
throws ClassNotFoundException
name - the class name
ClassNotFoundException - when there is no classprotected void install()
protected void initialize()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||