org.jboss.byteman.agent
Class Retransformer

java.lang.Object
  extended by org.jboss.byteman.agent.Transformer
      extended by org.jboss.byteman.agent.Retransformer
All Implemented Interfaces:
java.lang.instrument.ClassFileTransformer

public class Retransformer
extends Transformer

byte code transformer used to introduce byteman events into JBoss code


Field Summary
private  java.util.Set<java.lang.String> bootJars
           
private  java.util.Set<java.lang.String> sysJars
           
 
Fields inherited from class org.jboss.byteman.agent.Transformer
ALLOW_CONFIG_UPDATE, BYTEMAN_PACKAGE_PREFIX, BYTEMAN_SAMPLE_PACKAGE_PREFIX, BYTEMAN_TEST_PACKAGE_PREFIX, COMPILE_TO_BYTECODE, COMPILE_TO_BYTECODE_COMPATIBILITY, DEBUG, DUMP_CFG, DUMP_CFG_PARTIAL, DUMP_GENERATED_CLASSES, DUMP_GENERATED_CLASSES_DIR, DUMP_GENERATED_CLASSES_INTERMEDIATE, helperManager, inst, isRedefine, JAVA_LANG_PACKAGE_PREFIX, loadCache, scriptRepository, SKIP_OVERRIDE_RULES, SYSPROPS_STRICT_MODE, TRANSFORM_ALL, TRANSFORM_ALL_COMPATIBILITY, VERBOSE, VERIFY_TRANSFORMED_BYTES
 
Constructor Summary
Retransformer(java.lang.instrument.Instrumentation inst, java.util.List<java.lang.String> scriptPaths, java.util.List<java.lang.String> scriptTexts, boolean isRedefine)
          constructor allowing this transformer to be provided with access to the JVM's instrumentation implementation
 
Method Summary
 void addTransformListener(java.lang.String hostname, java.lang.Integer port)
           
 void appendJarFile(java.io.PrintWriter out, java.util.jar.JarFile jarfile, boolean isBoot)
           
protected  void collectAffectedNames(java.util.List<RuleScript> ruleScripts, java.util.List<java.lang.String> classList, java.util.List<java.lang.String> interfaceList, java.util.List<java.lang.String> superClassList, java.util.List<java.lang.String> superInterfaceList)
           
 java.util.Set<java.lang.String> getLoadedBootJars()
          Returns jars that this retransformer was asked to add to the boot classloader.
 java.util.Set<java.lang.String> getLoadedSystemJars()
          Returns jars that this retransformer was asked to add to the system classloader.
 void installScript(java.util.List<java.lang.String> scriptTexts, java.util.List<java.lang.String> scriptNames, java.io.PrintWriter out)
           
protected  void listScripts(java.io.PrintWriter out)
           
 void removeScripts(java.util.List<java.lang.String> scriptTexts, java.io.PrintWriter out)
           
 
Methods inherited from class org.jboss.byteman.agent.Transformer
allowConfigUpdate, computeDumpGeneratedClasses, computeDumpGeneratedClassesDir, computeDumpGeneratedClassesIntermediate, disableTriggers, dumpScript, enableTriggers, installBootScripts, isBytemanClass, isCompileToBytecode, isDebug, isDumpCFG, isDumpCFGPartial, isSkipClass, isTransformable, isTriggeringEnabled, isVerbose, maybeDumpClass, maybeDumpClassIntermediate, skipOverrideRules, transform, transform, updateConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sysJars

private java.util.Set<java.lang.String> sysJars

bootJars

private java.util.Set<java.lang.String> bootJars
Constructor Detail

Retransformer

public Retransformer(java.lang.instrument.Instrumentation inst,
                     java.util.List<java.lang.String> scriptPaths,
                     java.util.List<java.lang.String> scriptTexts,
                     boolean isRedefine)
              throws java.lang.Exception
constructor allowing this transformer to be provided with access to the JVM's instrumentation implementation

Parameters:
inst - the instrumentation object used to interface to the JVM
Throws:
java.lang.Exception
Method Detail

installScript

public void installScript(java.util.List<java.lang.String> scriptTexts,
                          java.util.List<java.lang.String> scriptNames,
                          java.io.PrintWriter out)
                   throws java.lang.Exception
Throws:
java.lang.Exception

collectAffectedNames

protected void collectAffectedNames(java.util.List<RuleScript> ruleScripts,
                                    java.util.List<java.lang.String> classList,
                                    java.util.List<java.lang.String> interfaceList,
                                    java.util.List<java.lang.String> superClassList,
                                    java.util.List<java.lang.String> superInterfaceList)

listScripts

protected void listScripts(java.io.PrintWriter out)
                    throws java.lang.Exception
Throws:
java.lang.Exception

addTransformListener

public void addTransformListener(java.lang.String hostname,
                                 java.lang.Integer port)

removeScripts

public void removeScripts(java.util.List<java.lang.String> scriptTexts,
                          java.io.PrintWriter out)
                   throws java.lang.Exception
Throws:
java.lang.Exception

appendJarFile

public void appendJarFile(java.io.PrintWriter out,
                          java.util.jar.JarFile jarfile,
                          boolean isBoot)
                   throws java.lang.Exception
Throws:
java.lang.Exception

getLoadedBootJars

public java.util.Set<java.lang.String> getLoadedBootJars()
Returns jars that this retransformer was asked to add to the boot classloader. Note that the returned set will not include those jars that were added to the instrumentor object at startup via the -javaagent command line argument.

Returns:
set of jar pathnames for all jars loaded in the boot classloader

getLoadedSystemJars

public java.util.Set<java.lang.String> getLoadedSystemJars()
Returns jars that this retransformer was asked to add to the system classloader. Note that the returned set will not include those jars that were added to the instrumentor object at startup via the -javaagent command line argument.

Returns:
set of jar pathnames for all jars loaded in the system classloader