org.hibernate.tool.instrument.javassist
Class InstrumentTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.hibernate.tool.instrument.BasicInstrumentationTask
              extended by org.hibernate.tool.instrument.javassist.InstrumentTask

public class InstrumentTask
extends BasicInstrumentationTask

An Ant task for instrumenting persistent classes in order to enable field-level interception using Javassist.

In order to use this task, typically you would define a a taskdef similiar to:

 
     
 
 
where lib.class.path is an ANT path reference containing all the required Hibernate and Javassist libraries.

And then use it like:

 
     
         
         ...
     
 
 
where the nested ANT fileset includes the class you would like to have instrumented.

Optionally you can chose to enable "Extended Instrumentation" if desired by specifying the extended attriubute on the task:

 
     ...
 
 
See the Hibernate manual regarding this option.

Author:
Muga Nishizawa, Steve Ebersole

Nested Class Summary
 
Nested classes/interfaces inherited from class org.hibernate.tool.instrument.BasicInstrumentationTask
BasicInstrumentationTask.CustomFieldFilter, BasicInstrumentationTask.Logger
 
Field Summary
 
Fields inherited from class org.hibernate.tool.instrument.BasicInstrumentationTask
logger
 
Fields inherited from class org.apache.tools.ant.Task
description, location, target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
InstrumentTask()
           
 
Method Summary
protected  ClassDescriptor getClassDescriptor(byte[] bytecode)
           
protected  ClassTransformer getClassTransformer(ClassDescriptor descriptor)
           
 
Methods inherited from class org.hibernate.tool.instrument.BasicInstrumentationTask
addFileset, checkMagic, execute, filesets, isBeingIntrumented, isClassFile, isExtended, isJarFile, isVerbose, processClassFile, processFile, processJarFile, setExtended, setVerbose
 
Methods inherited from class org.apache.tools.ant.Task
getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, reconfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getProject, setProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InstrumentTask

public InstrumentTask()
Method Detail

getClassDescriptor

protected ClassDescriptor getClassDescriptor(byte[] bytecode)
                                      throws IOException
Specified by:
getClassDescriptor in class BasicInstrumentationTask
Throws:
IOException

getClassTransformer

protected ClassTransformer getClassTransformer(ClassDescriptor descriptor)
Specified by:
getClassTransformer in class BasicInstrumentationTask