Class CacheAwareJavassistClassBytecodeProcessor

java.lang.Object
org.zeroturnaround.javarebel.integration.support.JavassistClassBytecodeProcessor
org.zeroturnaround.javarebel.integration.support.CacheAwareJavassistClassBytecodeProcessor
All Implemented Interfaces:
org.zeroturnaround.javarebel.ClassBytecodeProcessor
Direct Known Subclasses:
BaseServletContextImplClassBytecodeProcessor, ImplementInterfaceCBP, StandardClassLoaderCBP

public abstract class CacheAwareJavassistClassBytecodeProcessor extends JavassistClassBytecodeProcessor
Processors that extend this class are cached by default.
  • Constructor Details

    • CacheAwareJavassistClassBytecodeProcessor

      public CacheAwareJavassistClassBytecodeProcessor()
  • Method Details

    • process

      protected final byte[] process(org.zeroturnaround.bundled.javassist.ClassPool cp, ClassLoader cl, String classname, byte[] bytecode) throws Exception
      Overrides:
      process in class JavassistClassBytecodeProcessor
      Throws:
      Exception
    • getCachingPolicy

      protected CacheAwareJavassistClassBytecodeProcessor.CachingPolicy getCachingPolicy(org.zeroturnaround.bundled.javassist.ClassPool cp, ClassLoader cl)
      Returns the caching policy used by this processor.

      If a processor uses a caching policy that isn't equal to NEVER, then its transformations may be cached between runs. A processor then needs to make sure that its process method does not have any side effects.

      Also, the processing of a keyless processor may only depend on the structure of the processed class. In case of any other dependencies (e.g. the existence or structure of other classes in the class pool, configuration options etc), a key should be used to identify the processing configuration. This method returns ALWAYS in its default implementation.