/*
* MessageReceiver.java
*
* Version 1.0 Sep 14, 2008
*
* Copyright notice
*
* Brief description
*
* (c) 2008 by dbreuer
*/
package de.fhkoeln.cosima.messaging;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
/**
* Implementation of message receiving functionality based on the
* {@link MessageFeatures} class and by implementing the {@link MessageListener}
* interface.
*
* @author Dirk Breuer
* @version 1.0 Sep 14, 2008
*/
public class MessageReceiver extends MessageFeatures implements MessageListener {
public MessageReceiver(String topicName) {
super(topicName);
}
/*
* (non-Javadoc)
* @see de.fhkoeln.cosima.messaging.MessageFeatures#executeFeature()
*/
protected void executeFeature() {
try {
// create a MessageConsumer from the Session
MessageConsumer consumer = getSession().createConsumer(getDestination());
System.out.println("> Receiving messages from destination '"
+ getDestination() + "' ...");
// consumer.setMessageListener(this);
Message message = consumer.receive();
onMessage(message);
consumer.close();
} catch (JMSException e) {
System.err.println("JMS Error occured while receiving a message.");
e.printStackTrace();
}
}
/*
* (non-Javadoc)
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
setMessageContent(textMessage.getText());
System.err.println(">> Current Message: " + textMessage.getText());
} else {
setMessageContent(message.toString());
}
} catch (JMSException e) {
System.err.println("JMS Error occured while processing a message.");
e.printStackTrace();
}
}
}