I put some breakpoints in RegisterModuleCallback.addModule(), JBossClDelegatingClassPool constructor, and in JavassistTypeInfoFactoryImpl.delegateToIntrospectionImplementation() (where failed ClassPool lookups end up) and it seems that there is a problem in that the aop classloader does not get registered with the classpools. The flow of these break points is:
- RegisterModuleCallback.addModule() - bootstrap-classloader:0.0.0
- RegisterModuleCallback.addModule() - jmx-classloader:0.0.0
- JBossClDelegatingClassPool() - bootstrap-classloader:0.0.0
- JBossClDelegatingClassPool() - jmx-classloader:0.0.0
- Get TypeInfo for AspectManagerJMXRegistrar fails (aop classpool not created yet)
- RegisterModuleCallback.addModule() - deployers-classloader:0.0.0
- JBossClDelegatingClassPool() - deployers-classloader:0.0.0
- Get TypeInfo for AOPAnnotationMetaDataParserDeployer fails (aop classpool not created)
- Get TypeInfo for AOPDeploymentAopMetaDataDeployer fails (aop classpool not created)
- Get TypeInfo for BeansDeploymentAopMetaDataDeployer fails (aop classpool not created)
- RegisterModuleCallback.addModule() - profile-classloader:0.0.0
- JBossClDelegatingClassPool() profile-classloader:0.0.0
Looking at the sequence of files from bootstrap.xml:
- bootstrap/vfs.xml - No classloader
- bootstrap/classloader.xml - defines bootstap-classloader:0.0.0
- bootstrap/stdio.xml - defines stdio-classloader:0.0.0
- bootstrap/kernel.xml - defines asynch-classloader:0.0.0
- bootstrap/aop.xml - defines aop-classloader:0.0.0 and the RegisterModuleCallback
- bootstrap/jmx.xml - defines jmx-classloader:0.0.0
- bootstrap/deployers.xml - defines deployers-classloader:0.0.0
- bootstrap/profile.xml - defines deployers-classloader:0.0.0
Assuming these get deployed in order (which I will look at next) it seems strange that the RegisterModuleCallback receives bootstrap-, jmx-, deployers- and profile-classloader, but not the aop-, stdio and, asynch-classloaders