package acquittement.manuel;

import implementation.ClientJMS;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;

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

/* Annick Fron
 *
 * 
 * La Queue va stocker le message entre le lancement
 * de l'emetteur et du recepteur
 */

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();
			// Acquittement manuel
			Session session = connexion.createSession(false,
					Session.CLIENT_ACKNOWLEDGE);
	
			Destination queue = session.createQueue("SampleQ1");

			MessageConsumer receiver = session.createConsumer(queue);
			// ne pas oublier de demarrer la connexion
			connexion.start();
			// réception d’un message de type texte
			TextMessage mess1 = (TextMessage) receiver.receive();
			System.out.println("Message reçu : " + mess1.getText());
			mess1.acknowledge();
			TextMessage mess2 = (TextMessage) receiver.receive();
			System.out.println("Message reçu : " + mess2.getText());
			//mess1.acknowledge();	si pas d'acquittement le message reste dans la Queue
			// si on acquitte un message, on acquitte tous ceux recus precedemment dans la session
			// fermeture de la connexion et de la session
			connexion.close();

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