package org.glassfish.test.jms.injection.ejb;
import javax.annotation.Resource;
import javax.ejb.*;
import javax.inject.Inject;
import javax.jms.*;
/**
*
* @author LILIZHAO
*/
@Stateless(mappedName="MessageReceiverBean/remote")
public class MessageReceiverBean implements MessageReceiverRemote {
@Resource(mappedName = "jms/jms_unit_test_Queue")
private Queue queue;
@Inject
@JMSConnectionFactory("jms/jms_unit_test_QCF")
@JMSSessionMode(JMSContext.AUTO_ACKNOWLEDGE)
private JMSContext jmsContext;
@Override
public boolean checkMessage(String text) {
try {
JMSConsumer consumer = jmsContext.createConsumer(queue);
Message msg = consumer.receive(30000L);
if (msg instanceof TextMessage) {
String content = ((TextMessage) msg).getText();
if (text.equals(content))
return true;
}
return false;
} catch (Exception e) {
throw new EJBException(e);
}
}
}