The class is org.jboss.classadapter.spi.ClassAdapter.
The MicroContainer will use it as follows.
DESCRIBE (when class is available - but not necessarily loaded yet):
1) Determine ClassAdapter (AOP or Reflected)
2) Get ClassInfo and override annotations as appriopriate
3) If overriding annotations at instance level, obtain an instance ClassAdapter
with the overridden ClassInfo.
4) Ask the ClassAdapter to augment dependencies with any information
from the Annotations.
INSTANTIATE (now that dependencies are satisfied)
1) Ask the ClassAdapter (could be instance) for the JoinpointFactory
2) Use the JoinpointFactory to construct the instance
I've also introduced the notion of ClassAdapterFactory
to more easily determine whether AOP will support
If it returns null, the microcontainer will just use plain
reflection without a "container".