1 25 package org.objectweb.easybeans.tests.common.ejbs.mdb.containermanaged.access; 26 27 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.CallbackType.ON_MESSAGE; 28 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.ENTERPRISE_BEAN; 29 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.ENTITY_MANAGER; 30 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.ENTITY_MANAGER_FACTORY; 31 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.RESOURCE_MANAGER; 32 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.TIMER; 33 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.USER_TRANSACTION; 34 import static org.objectweb.easybeans.tests.common.ejbs.entity.callbacklogger.OperationType.isEqual; 35 import static org.objectweb.easybeans.tests.common.helper.ContextHelper.checkResource; 36 37 import javax.annotation.Resource; 38 import javax.ejb.ActivationConfigProperty ; 39 import javax.ejb.EJB ; 40 import javax.ejb.MessageDriven ; 41 import javax.ejb.MessageDrivenContext ; 42 import javax.ejb.TimerService ; 43 import javax.jms.JMSException ; 44 import javax.jms.Message ; 45 import javax.jms.MessageListener ; 46 import javax.persistence.EntityManager; 47 import javax.persistence.EntityManagerFactory; 48 import javax.persistence.PersistenceContext; 49 import javax.persistence.PersistenceUnit; 50 import javax.sql.DataSource ; 51 import javax.transaction.UserTransaction ; 52 53 import org.objectweb.easybeans.log.JLog; 54 import org.objectweb.easybeans.log.JLogFactory; 55 import org.objectweb.easybeans.tests.common.ejbs.base.ItfOneMethod01; 56 import org.objectweb.easybeans.tests.common.ejbs.stateless.containermanaged.callbacklogger.BaseInsertOperation; 57 import org.objectweb.easybeans.tests.common.jms.JMSManager; 58 import org.objectweb.easybeans.tests.common.jms.MessageProperty; 59 import org.objectweb.easybeans.tests.common.resources.EMFactoryTester; 60 import org.objectweb.easybeans.tests.common.resources.EntityManagerTester; 61 62 67 @MessageDriven (messageListenerInterface = MessageListener .class, activationConfig = { 68 @ActivationConfigProperty (propertyName = "destinationType", propertyValue = "javax.jms.Queue"), 69 @ActivationConfigProperty (propertyName = "destination", propertyValue = JMSManager.DEFAULT_QUEUE), 70 @ActivationConfigProperty (propertyName = "messageSelector", propertyValue = 71 "TYPE ='org.objectweb.easybeans.tests.common.ejbs.mdb.containermanaged.access.MDBListenerMethodAccess'") 72 }) 73 @EJB (name = "ejb/bean01", beanInterface = ItfOneMethod01.class, beanName = "EJBInjectionBean") 74 @Resource(name = "jdbc/ds01", type = javax.sql.DataSource .class, mappedName = "jdbc_1") 75 @PersistenceUnit(name = "persistence/pu01") 76 @PersistenceContext(name = "persistence/pctx01") 77 public class MDBListenerMethodAccess extends BaseInsertOperation { 78 79 82 private JLog logger = JLogFactory.getLog(MDBListenerMethodAccess.class); 83 84 87 public static final String MESSAGE_TYPE = "org.objectweb.easybeans.tests.common.ejbs." 88 + "mdb.containermanaged.access.MDBListenerMethodAccess"; 89 90 93 private static final long serialVersionUID = 4108218174206348937L; 94 95 98 @Resource 99 private MessageDrivenContext ctx; 100 101 104 @Resource 105 private TimerService timer; 106 107 110 @Resource 111 private UserTransaction utx; 112 113 117 public void onMessage(final Message message) { 118 String op = null; 119 120 try { 121 op = message.getStringProperty(MessageProperty.OPERATION.toString()); 122 } catch (JMSException e) { 123 logger.debug("Error getting operation type: {0}", e); 124 } 125 126 if (isEqual(RESOURCE_MANAGER, op)) { 127 DataSource ds = (DataSource ) ctx.lookup("jdbc/ds01"); 128 checkResource(ds); 129 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, RESOURCE_MANAGER); 130 131 } else if (isEqual(ENTERPRISE_BEAN, op)) { 132 ItfOneMethod01 bean = (ItfOneMethod01) ctx.lookup("ejb/bean01"); 133 bean.getBool(); 134 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, ENTERPRISE_BEAN); 135 136 } else if (isEqual(ENTITY_MANAGER_FACTORY, op)) { 137 EntityManagerFactory emf = (EntityManagerFactory) ctx.lookup("persistence/pu01"); 138 try { 139 EMFactoryTester.checkInstance(emf, "tmpTable" + this.hashCode()); 140 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, ENTITY_MANAGER_FACTORY); 141 } catch (Exception e) { 142 logger.debug("Error in EntityManagerFactory use: {0}", e); 143 e.printStackTrace(); 144 } 145 146 } else if (isEqual(ENTITY_MANAGER, op)) { 147 EntityManager em = (EntityManager) ctx.lookup("persistence/pctx01"); 148 try { 149 EntityManagerTester.checkInstance(em, "tmpTable" + this.hashCode()); 150 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, ENTITY_MANAGER); 151 } catch (Exception e) { 152 logger.debug("Error in EntityManagerFactory use: {0}", e); 153 e.printStackTrace(); 154 } 155 156 } else if (isEqual(TIMER, op)) { 157 timer.hashCode(); 158 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, TIMER); 159 160 } else if (isEqual(USER_TRANSACTION, op)){ 161 if (utx == null){ 162 log(MDBListenerMethodAccess.class, ON_MESSAGE, MDBListenerMethodAccess.class, USER_TRANSACTION); 163 } 164 } 165 166 } 167 168 } 169 | Popular Tags |