jasco.runtime.hotswap1
Class HotSwap

java.lang.Object
  extended by jasco.runtime.hotswap1.HotSwap

public class HotSwap
extends java.lang.Object


Nested Class Summary
protected static class HotSwap.EventThread
           
protected static class HotSwap.ShutdownHookThread
           
 
Constructor Summary
HotSwap()
           
 
Method Summary
protected static void addShutdownHook()
           
protected static boolean alreadyTransformed(java.lang.String classname, java.lang.String methodname)
           
static boolean checkValidType(java.lang.String name)
           
protected static void checkVM(com.sun.jdi.VirtualMachine theVM)
           
protected static java.util.Map connectorArguments(com.sun.jdi.connect.LaunchingConnector connector, java.lang.String mainArgs)
          Return the launching connector's arguments.
protected static void connectToHotSwapMachine(java.lang.Process p)
           
protected static void doExit()
           
protected static void emptyFolder(java.io.File dir)
           
protected static void emptyTempFolder()
           
protected static com.sun.jdi.connect.AttachingConnector findAttachingConnector()
           
protected static com.sun.jdi.connect.LaunchingConnector findLaunchingConnector()
           
protected static java.lang.String getClassname(java.lang.String method)
           
protected static javassist.ClassPool getClassPool()
           
protected static java.lang.String getMethodname(java.lang.String method)
           
static com.sun.jdi.VirtualMachine getVM()
           
static void hotswaptargetClasses(Connector c)
           
protected static void initClassPool(javassist.ClassPool p)
           
protected static void initUserExcludedTypes(java.lang.String s, boolean overwrite)
           
protected static void interceptClassLoading(com.sun.jdi.VirtualMachine vmInstance)
           
protected static boolean isTestType(java.lang.String name)
           
static void main(java.lang.String[] args)
           
static java.lang.String makeGNUReg(java.lang.String s)
           
protected static byte[] patchClassLoader(javassist.CtClass clz)
           
protected static byte[] patchClassLoader2(javassist.CtClass clz)
           
protected static void redirectClassLoader()
           
static void redirectOutput(java.lang.Process process)
           
static void redirectOutput(com.sun.jdi.VirtualMachine vm)
           
static java.lang.String removeAnnotation(java.lang.String signature)
           
static void run(java.lang.String[] args)
           
protected static void runDefaultHotswapmachine(java.lang.String args)
           
static void saveAdaptedMethods(java.lang.String classname, java.util.Vector adapted)
           
static void saveOriginal(java.lang.String classname)
           
static boolean suspendVMWhileSwapping()
           
protected static boolean transformAspects()
           
protected static byte[] transformClassAndMethod(com.sun.jdi.ReferenceType type, java.lang.String methodname)
           
static void transformLoadedClass(com.sun.jdi.ReferenceType type)
           
protected static byte[] transfromClass(java.lang.String classname, java.lang.String methodname)
           
static void unhotswaptargetClasses(Connector unload)
           
protected static boolean useRedirectClassLoader()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HotSwap

public HotSwap()
Method Detail

saveOriginal

public static void saveOriginal(java.lang.String classname)

saveAdaptedMethods

public static void saveAdaptedMethods(java.lang.String classname,
                                      java.util.Vector adapted)

initUserExcludedTypes

protected static void initUserExcludedTypes(java.lang.String s,
                                            boolean overwrite)

getVM

public static com.sun.jdi.VirtualMachine getVM()

suspendVMWhileSwapping

public static boolean suspendVMWhileSwapping()

hotswaptargetClasses

public static void hotswaptargetClasses(Connector c)

emptyTempFolder

protected static void emptyTempFolder()

emptyFolder

protected static void emptyFolder(java.io.File dir)

transformAspects

protected static boolean transformAspects()

isTestType

protected static boolean isTestType(java.lang.String name)

checkValidType

public static boolean checkValidType(java.lang.String name)
                              throws java.lang.Exception
Throws:
java.lang.Exception

transformClassAndMethod

protected static byte[] transformClassAndMethod(com.sun.jdi.ReferenceType type,
                                                java.lang.String methodname)
                                         throws java.lang.Exception
Throws:
java.lang.Exception

unhotswaptargetClasses

public static void unhotswaptargetClasses(Connector unload)

makeGNUReg

public static java.lang.String makeGNUReg(java.lang.String s)

alreadyTransformed

protected static boolean alreadyTransformed(java.lang.String classname,
                                            java.lang.String methodname)

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)

run

public static void run(java.lang.String[] args)
                throws java.lang.Exception
Throws:
java.lang.Exception

connectToHotSwapMachine

protected static void connectToHotSwapMachine(java.lang.Process p)
                                       throws java.lang.Exception
Throws:
java.lang.Exception

addShutdownHook

protected static void addShutdownHook()

runDefaultHotswapmachine

protected static void runDefaultHotswapmachine(java.lang.String args)
                                        throws java.lang.Exception
Throws:
java.lang.Exception

useRedirectClassLoader

protected static boolean useRedirectClassLoader()

doExit

protected static void doExit()

interceptClassLoading

protected static void interceptClassLoading(com.sun.jdi.VirtualMachine vmInstance)

transfromClass

protected static byte[] transfromClass(java.lang.String classname,
                                       java.lang.String methodname)
                                throws java.lang.Exception
Throws:
java.lang.Exception

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception

initClassPool

protected static void initClassPool(javassist.ClassPool p)
                             throws java.lang.Exception
Throws:
java.lang.Exception

getClassPool

protected static javassist.ClassPool getClassPool()

redirectClassLoader

protected static void redirectClassLoader()
                                   throws java.lang.Exception
Throws:
java.lang.Exception

patchClassLoader2

protected static byte[] patchClassLoader2(javassist.CtClass clz)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

patchClassLoader

protected static byte[] patchClassLoader(javassist.CtClass clz)
                                  throws java.lang.Exception
Throws:
java.lang.Exception

transformLoadedClass

public static void transformLoadedClass(com.sun.jdi.ReferenceType type)

redirectOutput

public static void redirectOutput(com.sun.jdi.VirtualMachine vm)

redirectOutput

public static void redirectOutput(java.lang.Process process)

checkVM

protected static void checkVM(com.sun.jdi.VirtualMachine theVM)

findLaunchingConnector

protected static com.sun.jdi.connect.LaunchingConnector findLaunchingConnector()

findAttachingConnector

protected static com.sun.jdi.connect.AttachingConnector findAttachingConnector()

connectorArguments

protected static java.util.Map connectorArguments(com.sun.jdi.connect.LaunchingConnector connector,
                                                  java.lang.String mainArgs)
Return the launching connector's arguments.