package com.packtpub.hibernatesearch.startup;

import org.hibernate.Session;
import org.hibernate.search.backend.impl.jms.AbstractJMSHibernateSearchController;

/**
 * W środowisku klastrowym z backendem opartym o JMS, węzły podrzędne mogą aktualizować indeksy Lucene wysyłając żądania
 * do kolejki JMS.  Węzeł nadrzędny jest odpowiedzialny za monitorwanie kolejki i przetwarzanie otrzymanych żądań.
 * 
 * Aby wykonać aktualizacje indeksu węzeł nadrzeny powiniem użyć klasy dziedziczącej po pochodzącej z Hibernate Search 
 * abstrakcyjnej klasie "AbstractJMSHibernateSearchController"... przesyłając wiadomość JMS do metody "onMessage". 
 * 
 * W środowisku JEE możesz opakować własną klasę potomną jako bean sterowany wiadomościami (jak sugeruje dokumentacja
 * Hibernate Search).  Niemniej jednak "AbstractJMSHibernateSearchController" nie wymaga pełnego stosu JEE. 
 * Tak długo jak twój framework (lub czysty kod) potrafi monitorować kolejkę JMS nie blokując głównego wątku aplikacji
 * main thread, może przekazywać wiadomości JMS do klas potomnych tego kontrolera.
 */
public class QueueController extends AbstractJMSHibernateSearchController {

	private Session session;
	
	public QueueController(Session session) {
		this.session = session;
	}
	
	@Override
	protected Session getSession() {
		return this.session;
	}

	@Override
	protected void cleanSessionIfNeeded(Session session) {
	}

}
