/*
* JmsMonitor.java
*
* Version 1.0 Sep 14, 2008
*
* Copyright notice
*
* Brief description
*
* (c) 2008 by dbreuer
*/
package de.fhkoeln.cosima.util;
import java.util.Date;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import de.fhkoeln.cosima.messaging.MessageFeatures;
/**
* A primitive JMS monitoring class. The monitoring results will be printed to STDOUT.
*
* @author Dirk Breuer
* @version 1.0 Sep 14, 2008
*
*/
public class JmsMonitor {
static class ReceiverMonitor extends MessageFeatures implements MessageListener {
public ReceiverMonitor(String topicName) {
super(topicName);
}
public void run() {
init();
executeFeature();
}
/* (non-Javadoc)
* @see de.fhkoeln.cosima.messaging.MessageFeatures#executeFeature()
*/
protected void executeFeature() {
try {
MessageConsumer consumer = getSession().createConsumer(getDestination());
consumer.setMessageListener(this);
// Message message = consumer.receive();
// onMessage(message);
System.out.println(">> Listening for messages ...");
} catch (JMSException e) {
e.printStackTrace();
}
}
/* (non-Javadoc)
* @see javax.jms.MessageListener#onMessage(javax.jms.Message)
*/
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
System.out.println("");
System.out.println("------------------------------------------------------");
System.out.println("> Message received! (On: " + new Date(System.currentTimeMillis()) + ")");
System.out.println("");
System.out.println("Message Details:");
try {
System.out.println(" Message ID : " + textMessage.getJMSMessageID());
System.out.println(" Message Timestamp : " + new Date(textMessage.getJMSTimestamp()));
System.out.println(" Message Type : " + textMessage.getJMSType());
System.out.println(" Message Destination: " + textMessage.getJMSDestination());
System.out.println(" Message : " + textMessage.getText());
System.out.println("");
System.out.println("------------------------------------------------------");
System.out.println("");
} catch (JMSException e) {
e.printStackTrace();
}
}
}
private static final String TOPIC_NAME = "http://santiago-project.fh-koeln.de/components/CreateMovieFromImages/input";
public static void main(String[] args) {
ReceiverMonitor monitor = new ReceiverMonitor(TOPIC_NAME);
thread(monitor, false);
}
private static Thread thread(Runnable runnable, boolean daemonize) {
Thread brokerThread = new Thread(runnable);
brokerThread.setDaemon(daemonize);
brokerThread.start();
return brokerThread;
}
}