Package org.apache.openjpa.enhance
OpenJPA Enhancer
This package provides a bytecode enhancer used to post-process classes for use in a OpenJPA runtime. A tool for generating application identity class sourcecode is also provided.
-
Interface Summary Interface Description ApplicationIdTool.ObjectIdLoader Interface implemented by metadata factories that can load non-existant object id classes.AttributeTranslator Instances of this interface can convert a positional index for aFieldMetaData
that uses property access into the underlying field name.DynamicPersistenceCapable Instances that implement this marker interface are dynamically-generated subtypes of managed types that were loaded before being enhanced.DynamicStorage Interface for dynamically generated classes.FieldConsumer Consumes persistent field values.FieldManager Manages persistent fields.FieldSupplier Supplies persistent field values.ManagedInstanceProvider Instances of this interface can provide an underlying instance.PCDataGenerator.DynamicPCData DynamicPCData
s generated will implement this interface to simplify initialization.PCEnhancer.AuxiliaryEnhancer Plugin interface for additional enhancement.PCRegistry.RegisterClassListener Listener for persistent class registration events.PersistenceCapable The interface that persistent instances will implement.RuntimeUnenhancedClassesModes Possible values for theopenjpa.RuntimeUnenhancedClasses
configuration setting.StateManager Internal state manager for managed instances. -
Class Summary Class Description ApplicationIdTool Generates a class appropriate for use as an application identity class.ApplicationIdTool.Flags Run flags.ClassRedefiner Redefines the method bodies of existing classes.CodeGenerator Generates Java class code from metadata.DynamicStorageGenerator Factory for creating newDynamicStorage
classes.InstrumentationFactory Factory for obtaining anInstrumentation
instance.ManagedClassSubclasser Redefines the method bodies of existing unenhanced classes to make them notify state managers of mutations.PCClassFileTransformer Transformer that makes persistent classes implement thePersistenceCapable
interface at runtime.PCClassFileTransformer.Reentrant PCDataGenerator GeneratesPCData
instances which avoid primitive wrappers to optimize memory use and performance at the cost of slightly higher startup time.PCEnhancer Bytecode enhancer used to enhance persistent classes from metadata.PCEnhancer.Flags Run flags.PCEnhancerAgent Java agent that makes persistent classes work with OpenJPA at runtime.PCRegistry Tracks registered persistence-capable classes.PCSubclassValidator Validates that a given type meets the JPA contract, plus a few OpenJPA-specific additions for subclassing / redefinition: must have an accessible no-args constructor must be a public or protected class must not be final must not extend an enhanced class all persistent data represented by accessible setter/getter methods (persistent properties) if versioning is to be used, exactly one persistent property for the numeric version data When using property access, the backing field for a persistent property must be: private set only in the designated setter, in the constructor, or inObject.clone()
,readObject(ObjectInputStream)
, orExternalizable.readExternal(ObjectInput)
. read only in the designated getter and the constructor.RedefinitionHelper Helper methods for managed types that use method redefinition for field tracking.ReflectingPersistenceCapable Implementation of thePersistenceCapable
interface that can handle the persistence-capable contract for instances that were not enhanced before class load time.Reflection Reflection utilities used to support and augment enhancement.