package com.jboss.dvd.seam;
import java.util.Date;
import javax.ejb.Remove;
import javax.ejb.Stateful;
import org.hibernate.search.jpa.FullTextEntityManager;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Startup;
/**
* At startup we need to reindex all entities from the database.
* This is an optional step in a real application, we need it in
* the demo as the database is volatile and was just filled
* with a SQL dump (see import.sql).
*
* @author Sanne Grinovero
*/
@Name("indexer")
@Stateful
@Scope(ScopeType.APPLICATION)
@Startup
public class IndexerAction implements Indexer
{
private Date lastIndexingTime;
@In
private FullTextEntityManager entityManager;
public Date getLastIndexingTime()
{
return lastIndexingTime;
}
@Create
public void index()
{
// Re-build the index for the whole database:
entityManager
.createIndexer()
.start();
lastIndexingTime = new Date();
}
@Remove
@Destroy
public void stop() {}
}