JBoss.org Community Documentation
In order to store an object in POJO Cache, it must be either instrumented or made serializable. Instrumentation is the most optimal approach since it preserves object identity and provides field granular replication. POJO Cache currently uses the JBoss AOP project to provide instrumentation, so the same processes described in the AOP documentation are used with POJO Cache.
The primary input to JBoss AOP is the AOP binding file, which is
responsible for specifying which classes should be instrumented.
POJO Cache provides a binding file,
pojocache-aop.xml
, which matches all classes that have been annotated with the
@Replicable
annotation. Advanced users may choose to alter this definition to
instrument classes in other various interesting ways. However, it is
recommended to just stick with the default annotation binding.
The instrumentation process can be executed at either load-time, or
compile-time. Load-time instrumentation uses a Java agent to
intercept and modify classes as they are loaded; whereas
compile-time instrumentation requires running
aopc
as part of the compilation process.
Load-time is the recommended approach, since compile-time instrumentation adds hard dependencies to the weaved bytecode which ties the output to a particular version of JBoss AOP.