jasco.runtime.hotswap
Class JAsCoTransformer
java.lang.Object
jasco.runtime.hotswap.JAsCoTransformer
- All Implemented Interfaces:
- ConnectorRegistryListener, java.lang.instrument.ClassFileTransformer
public class JAsCoTransformer
- extends java.lang.Object
- implements java.lang.instrument.ClassFileTransformer, ConnectorRegistryListener
Method Summary |
protected void |
addAdaptedMethods(java.lang.String classname,
java.util.Vector methods)
|
protected void |
addAll(java.util.Hashtable res,
java.util.Hashtable table)
|
void |
addClassLoadingListener(ClassLoadingListener l)
|
protected void |
addPathsToClassPath(java.lang.ClassLoader loader)
|
protected byte[] |
alterURLClassLoader(javassist.CtClass clz)
|
void |
checkWhetherConnectorsAppy(java.util.Hashtable removalMethods)
|
protected void |
connectorCombStratChange()
|
protected void |
cpropertyChange(Connector c)
|
void |
doFullClassUnhotswap(java.util.Vector classes)
|
protected void |
doSingleMethodUnhotswap(java.util.Hashtable removalMethods)
|
protected void |
fireClassLoadingEvent(javassist.CtClass clz,
java.lang.String classname)
|
java.util.Hashtable |
getAdaptedMethods()
|
java.util.Hashtable |
getAdaptedMethodsForRemoval()
|
protected static java.lang.String |
getClassname(java.lang.String method)
|
protected javassist.ClassPool |
getClassPool()
|
JAsCoHotSwap |
getHotSwap()
|
java.lang.instrument.Instrumentation |
getIntrumentation()
|
protected static java.lang.String |
getMethodname(java.lang.String method)
|
TransformClassChecker |
getTransformChecker()
|
void |
hotswaptargetClasses(Connector c)
|
protected java.util.Hashtable |
join(java.util.Hashtable table1,
java.util.Hashtable table2)
|
void |
registryChanged(CRChangeEvent event)
method invoked whenever something changes in the connector registry:
connector added, removed, connector combinattion strategy added or removed,... |
void |
registryUpdated()
method invoked when the automatic connector loading process is finished
is invoked regardless of whether connectors were added or deleted
use registryChanged to know that. |
static java.lang.String |
removeAnnotation(java.lang.String signature)
|
void |
removeClassLoadingListener(ClassLoadingListener l)
|
void |
removeInlineCompiledMethods(Connector theconnector)
|
protected byte[] |
removeTraps(java.lang.String classname,
java.util.Vector methods)
|
byte[] |
transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer)
|
protected byte[] |
transformClassAndMethod(java.lang.Class cls,
java.lang.String methodname)
|
protected byte[] |
transformLoadedClass(javassist.CtClass cls,
java.lang.String classname,
byte[] bytes,
java.lang.ClassLoader loader)
|
protected byte[] |
transfromClass(java.lang.Class theclass,
java.lang.String classname,
java.lang.String methodname)
|
boolean |
trapRemoved(java.lang.String classname,
java.lang.String methodname)
|
void |
unhotswaptargetClasses(Connector unload)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
JAsCoTransformer
public JAsCoTransformer()
getHotSwap
public JAsCoHotSwap getHotSwap()
getTransformChecker
public TransformClassChecker getTransformChecker()
getAdaptedMethods
public java.util.Hashtable getAdaptedMethods()
getAdaptedMethodsForRemoval
public java.util.Hashtable getAdaptedMethodsForRemoval()
join
protected java.util.Hashtable join(java.util.Hashtable table1,
java.util.Hashtable table2)
addAll
protected void addAll(java.util.Hashtable res,
java.util.Hashtable table)
trapRemoved
public boolean trapRemoved(java.lang.String classname,
java.lang.String methodname)
registryChanged
public void registryChanged(CRChangeEvent event)
- Description copied from interface:
ConnectorRegistryListener
- method invoked whenever something changes in the connector registry:
connector added, removed, connector combinattion strategy added or removed,...
- Specified by:
registryChanged
in interface ConnectorRegistryListener
registryUpdated
public void registryUpdated()
- Description copied from interface:
ConnectorRegistryListener
- method invoked when the automatic connector loading process is finished
is invoked regardless of whether connectors were added or deleted
use registryChanged to know that.
- Specified by:
registryUpdated
in interface ConnectorRegistryListener
connectorCombStratChange
protected void connectorCombStratChange()
cpropertyChange
protected void cpropertyChange(Connector c)
doFullClassUnhotswap
public void doFullClassUnhotswap(java.util.Vector classes)
doSingleMethodUnhotswap
protected void doSingleMethodUnhotswap(java.util.Hashtable removalMethods)
throws java.lang.Exception
- Throws:
java.lang.Exception
removeTraps
protected byte[] removeTraps(java.lang.String classname,
java.util.Vector methods)
throws java.lang.Exception
- Throws:
java.lang.Exception
unhotswaptargetClasses
public void unhotswaptargetClasses(Connector unload)
removeInlineCompiledMethods
public void removeInlineCompiledMethods(Connector theconnector)
checkWhetherConnectorsAppy
public void checkWhetherConnectorsAppy(java.util.Hashtable removalMethods)
hotswaptargetClasses
public void hotswaptargetClasses(Connector c)
transformClassAndMethod
protected byte[] transformClassAndMethod(java.lang.Class cls,
java.lang.String methodname)
throws java.lang.Exception
- Throws:
java.lang.Exception
getClassPool
protected javassist.ClassPool getClassPool()
transfromClass
protected byte[] transfromClass(java.lang.Class theclass,
java.lang.String classname,
java.lang.String methodname)
throws java.lang.Exception
- Throws:
java.lang.Exception
addAdaptedMethods
protected void addAdaptedMethods(java.lang.String classname,
java.util.Vector methods)
getMethodname
protected static java.lang.String getMethodname(java.lang.String method)
removeAnnotation
public static java.lang.String removeAnnotation(java.lang.String signature)
getClassname
protected static java.lang.String getClassname(java.lang.String method)
transformLoadedClass
protected byte[] transformLoadedClass(javassist.CtClass cls,
java.lang.String classname,
byte[] bytes,
java.lang.ClassLoader loader)
getIntrumentation
public java.lang.instrument.Instrumentation getIntrumentation()
alterURLClassLoader
protected byte[] alterURLClassLoader(javassist.CtClass clz)
throws java.lang.Exception
- Throws:
java.lang.Exception
addClassLoadingListener
public void addClassLoadingListener(ClassLoadingListener l)
removeClassLoadingListener
public void removeClassLoadingListener(ClassLoadingListener l)
addPathsToClassPath
protected void addPathsToClassPath(java.lang.ClassLoader loader)
transform
public byte[] transform(java.lang.ClassLoader loader,
java.lang.String className,
java.lang.Class classBeingRedefined,
java.security.ProtectionDomain protectionDomain,
byte[] classfileBuffer)
- Specified by:
transform
in interface java.lang.instrument.ClassFileTransformer
fireClassLoadingEvent
protected void fireClassLoadingEvent(javassist.CtClass clz,
java.lang.String classname)