/* * jBoss, the OpenSource EJB server * * Distributable under GPL license. * See terms of license at gnu.org. */ package org.jboss.ejb; import org.jboss.ejb.plugins.*; import org.jboss.metadata.*; /** * MessageDrivenDeployer provides implementations of BeanDeployer methods * that are specific to Message Driven Beans. * * @see BeanDeployer * @author <a href="mailto:[EMAIL PROTECTED]">Jack Bolles</a> */ public class MessageDrivenDeployer extends BeanDeployer { protected MessageDrivenDeployer(BeanMetaData bmd, ClassLoader loader, boolean enableMetrics){ super(bmd, loader, enableMetrics); container = new MessageDrivenContainer(); } protected void setInstancePool() throws DeploymentException { // Set instance pool InstancePool ip = null; try { ip = (InstancePool)cl.loadClass(conf.getInstancePool ()).newInstance(); if(ip instanceof XmlLoadable) { ((XmlLoadable)ip).importXml(conf.getContainerPoolConf()); } } catch(Exception e) { throw new DeploymentException("Missing or invalid Instance Pool (in jboss.xml or standardjboss.xml)", e); } container.setInstancePool(ip); } /** Does nothing*/ protected void setInstanceCache() throws DeploymentException { return; } /** Does nothing*/ protected void setPersistenceManager() throws DeploymentException { return; } protected void setInterceptors() throws DeploymentException { super.setInterceptors(); container.addInterceptor(new MessageDrivenInstanceInterceptor()); if (((MessageDrivenMetaData)bean).isContainerManagedTx()) { // CMT container.addInterceptor(new TxInterceptorCMT()); } else { // BMT // FIXME. should we have a special BMT tx interceptor to place ACK there??? container.addInterceptor(new MessageDrivenTxInterceptorBMT()); } } }
