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)
|
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()
|
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[] |
transformClass(javassist.CtClass cls,
java.lang.String classname,
java.lang.ClassLoader loader)
|
protected byte[] |
transformClass(javassist.CtClass cls,
java.lang.String classname,
java.lang.ClassLoader loader,
java.util.Set matchingMethods)
|
protected byte[] |
transformClass(java.lang.String classname,
Connector c,
java.lang.ClassLoader loader)
|
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)
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()
throws java.lang.Exception
- Throws:
java.lang.Exception
hotswaptargetClasses
public void hotswaptargetClasses(Connector c)
getClassPool
protected javassist.ClassPool getClassPool()
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)
transformClass
protected byte[] transformClass(java.lang.String classname,
Connector c,
java.lang.ClassLoader loader)
transformClass
protected byte[] transformClass(javassist.CtClass cls,
java.lang.String classname,
java.lang.ClassLoader loader)
transformClass
protected byte[] transformClass(javassist.CtClass cls,
java.lang.String classname,
java.lang.ClassLoader loader,
java.util.Set matchingMethods)
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)