public class Weaver extends java.lang.Object
|Constructor and Description|
|Modifier and Type||Method and Description|
Get all woven fields in this class, including subclasses, up to the normal
Load/Reload classes defined at runtime.
public static java.lang.reflect.Field getWovenFields(java.lang.Class clz)
Icedserialization classes, skipping static and transient fields, and the required _ice_id field.
Fieldholding the list of woven fields.
public static void loadDynamic(java.lang.String name, byte b)
ClassPool, and then
javassistLoadClass(int, Class)resolves the generation of (de)serializers. In order to reload classes, though, each dynamically loaded class must have its very own
ClassLoader, and all previous
Icers must be removed. In order to maintain cluster-wide coherency about which classes are loaded, the
TypeMapis likewise updated whenever a class is reloaded. In order to successfully load classes at runtime (for example a subclass of
MRTask), each node takes the bytecode and class name and puts a new
_pool's classpath. Since there is no mechanism for retrieving these
ClassPathinstances later, they are stored in
CLASSPATHSso that reload events can remove the old paths. Similarly,
CLASSLOADERSholds on to the loaders of dynamically created classes so that classes can be reloaded and old
ClassLoaderinstances pruned. Finally, in order to
genDelegate(int, Class)during a class reload, then the previous
CtClass.detach()ed. In addition, the
TypeMap.goForGold(int)must turn a null for the
name- class name