jasco.runtime.hotswap
Class JAsCoTransformer

java.lang.Object
  extended by 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


Constructor Summary
JAsCoTransformer()
           
 
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
 

Constructor Detail

JAsCoTransformer

public JAsCoTransformer()
Method Detail

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)