org.jacoco.core.instr
Class Instrumenter

java.lang.Object
  extended by org.jacoco.core.instr.Instrumenter

public class Instrumenter
extends Object

Several APIs to instrument Java class definitions for coverage tracing.


Constructor Summary
Instrumenter(IExecutionDataAccessorGenerator runtime)
          Creates a new instance based on the given runtime.
 
Method Summary
 byte[] instrument(byte[] buffer, String name)
          Creates a instrumented version of the given class if possible.
 void instrument(InputStream input, OutputStream output, String name)
          Creates a instrumented version of the given class file.
 byte[] instrument(InputStream input, String name)
          Creates a instrumented version of the given class if possible.
 int instrumentAll(InputStream input, OutputStream output, String name)
          Creates a instrumented version of the given resource depending on its type.
 void setRemoveSignatures(boolean flag)
          Determines whether signatures should be removed from JAR files.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Instrumenter

public Instrumenter(IExecutionDataAccessorGenerator runtime)
Creates a new instance based on the given runtime.

Parameters:
runtime - runtime used by the instrumented classes
Method Detail

setRemoveSignatures

public void setRemoveSignatures(boolean flag)
Determines whether signatures should be removed from JAR files. This is typically necessary as instrumentation modifies the class files and therefore invalidates existing JAR signatures. Default is true.

Parameters:
flag - true if signatures should be removed

instrument

public byte[] instrument(byte[] buffer,
                         String name)
                  throws IOException
Creates a instrumented version of the given class if possible.

Parameters:
buffer - definition of the class
name - a name used for exception messages
Returns:
instrumented definition
Throws:
IOException - if the class can't be instrumented

instrument

public byte[] instrument(InputStream input,
                         String name)
                  throws IOException
Creates a instrumented version of the given class if possible. The provided InputStream is not closed by this method.

Parameters:
input - stream to read class definition from
name - a name used for exception messages
Returns:
instrumented definition
Throws:
IOException - if reading data from the stream fails or the class can't be instrumented

instrument

public void instrument(InputStream input,
                       OutputStream output,
                       String name)
                throws IOException
Creates a instrumented version of the given class file. The provided InputStream and OutputStream instances are not closed by this method.

Parameters:
input - stream to read class definition from
output - stream to write the instrumented version of the class to
name - a name used for exception messages
Throws:
IOException - if reading data from the stream fails or the class can't be instrumented

instrumentAll

public int instrumentAll(InputStream input,
                         OutputStream output,
                         String name)
                  throws IOException
Creates a instrumented version of the given resource depending on its type. Class files and the content of archive files are instrumented. All other files are copied without modification. The provided InputStream and OutputStream instances are not closed by this method.

Parameters:
input - stream to contents from
output - stream to write the instrumented version of the contents
name - a name used for exception messages
Returns:
number of instrumented classes
Throws:
IOException - if reading data from the stream fails or a class can't be instrumented


Copyright © 2009–2023 Mountainminds GmbH & Co. KG. All rights reserved.