package durable.subscriber;

import implementation.ClientJMS;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;

import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Topic;

import javax.jms.Session;
import javax.jms.TextMessage;


/* Annick Fron
 * Reception d'un Topic a posteriori
 * 
 * Lancer Inscription
 * Puis Emetteur
 * Puis Recepteur
 * 
 * A present Desinscription
 * Emetteur
 * Recepteur : le recepteur ne recoit plus rien
 */

public class Recepteur extends ClientJMS {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		new Recepteur().run();
	}

	public void run() {
		ConnectionFactory cf = getConnectionFactory();
		Connection connexion;
		try {
			connexion = cf.createConnection();
			// mettre un ID a la connexion
			connexion.setClientID("Client1");
			Session session = connexion.createSession(false,
					Session.AUTO_ACKNOWLEDGE);
			// pour un Topic on aurait de meme createTopic...
			Topic topic = session.createTopic("MonTopic");

			MessageConsumer receiver = session.createDurableSubscriber(topic, "Abonnement1");
			// ne pas oublier de demarrer la connexion
			connexion.start();
			// réception d’un message de type texte
			TextMessage mess = (TextMessage) receiver.receive();
			System.out.println("Message reçu : " + mess.getText());
			// fermeture de la connexion et de la session
			connexion.close();

		} catch (JMSException e) {
			
			System.out.println(e.getMessage());
		}
		
	}
}
