package org.jboss.as.test.integration.ejb.singleton.dependson.mdb;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.DependsOn;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import org.jboss.as.test.integration.ejb.mdb.JMSMessagingUtil;
import org.jboss.logging.Logger;
@MessageDriven(name = "AnnoBasedBean", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "${destination}")})
@DependsOn("CallCounterProxy")
public class MDBWhichDependsOn implements MessageListener {
private static final Logger logger = Logger.getLogger(MDBWhichDependsOn.class);
@EJB
private CallCounterProxy counter;
@EJB
private JMSMessagingUtil jmsMessagingUtil;
@PostConstruct
public void postConstruct() {
logger.trace("MDB.postConstruct");
this.counter.setPostConstruct();
}
@PreDestroy
public void preDestroy() {
logger.trace("MDB.preDestroy");
this.counter.setPreDestroy();
}
@Override
public void onMessage(Message message) {
logger.trace("MDB.message");
this.counter.setMessage();
try {
final Destination replyTo = message.getJMSReplyTo();
if (replyTo == null) {
return;
}
logger.trace("Sending a reply to destination " + replyTo);
jmsMessagingUtil.reply(message);
} catch (JMSException e) {
throw new RuntimeException(e);
} finally {
}
}
}