isMessageDriven = true;
appEJBName_ = desc.getApplication().getRegistrationName() + ":"
+ desc.getName();
EjbMessageBeanDescriptor msgBeanDesc = (EjbMessageBeanDescriptor) desc;
ComponentInvocation componentInvocation = null;
try {
Class<?> beanClass = loader.loadClass(desc.getEjbClassName());
messageListenerType_ = loader.loadClass(msgBeanDesc.getMessageListenerType());
Class<?> messageListenerType_1 = messageListenerType_;
if (isModernMessageListener(messageListenerType_1)) {
// Generate interface and subclass for EJB 3.2 No-interface MDB VIew
MessageBeanInterfaceGenerator generator = new MessageBeanInterfaceGenerator(loader);
messageBeanInterface_ = generator.generateMessageBeanInterface(beanClass);
messageBeanSubClass_ = generator.generateMessageBeanSubClass(beanClass, messageBeanInterface_);
}
// Register the tx attribute for each method on MessageListener
// interface. NOTE : These method objects MUST come from the
// MessageListener interface, NOT the bean class itself. This
// is because the message bean container clients do not have
// access to the message bean class.
Method[] msgListenerMethods = msgBeanDesc
.getMessageListenerInterfaceMethods(loader);
for (int i = 0; i < msgListenerMethods.length; i++) {
Method next = msgListenerMethods[i];
addInvocationInfo(next, MethodDescriptor.EJB_BEAN, null);