// For each bean class
List<String> beanNames = ejbJarAnnotationMetadata.getBeanNames();
for (String beanName : beanNames) {
List<String> keys = ejbJarAnnotationMetadata.getClassesnameForBean(beanName);
for (String key : keys) {
EasyBeansEjbJarClassMetadata classMetaData = ejbJarAnnotationMetadata.getClassForBean(beanName, key);
if (classMetaData.isBean()) {
// Inheritance on interfaces
InheritanceInterfacesHelper.resolve(classMetaData);
InterfaceAnnotatedHelper.resolve(classMetaData);
InheritanceMethodResolver.resolve(classMetaData);
// Analyze EJB 2.1x home/localhome for finding interface used
EJB21Finder.resolve(classMetaData);
// Find business method
if (classMetaData.isSession()) {
BusinessMethodResolver.resolve(classMetaData);
} else if (classMetaData.isMdb()) {
MDBListenerBusinessMethodResolver.resolve(classMetaData);
}
// Security
SecurityResolver.resolve(classMetaData);
// Transaction
TransactionResolver.resolve(classMetaData);
// Interceptors
InterceptorsClassResolver.resolve(classMetaData, server);
// Check the timer methods (only one by bean) and if the signature is valid
TimedObjectInterface.resolve(classMetaData);
TimerBeanValidator.validate(classMetaData);
}
// for each bean, call sub helper
if (classMetaData.isSession()) {
SessionBeanHelper.resolve(classMetaData);
} else if (classMetaData.isMdb()) {
MDBBeanHelper.resolve(classMetaData);
}
}
}
}