Eu estou estudando a api HibernateSearch para fazer buscas no banco de dados porém não sei como informar corretamente os Listener da api para que o hibernate search faça o trabalho pesado da indexação. Na documentação diz para adicionar as linhas abaixo no meu hibernate.cfg.xml:
<session-factory>
...
<event type="post-update">
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
<event type="post-insert">
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
<event type="post-delete">
<listener class="org.hibernate.search.event.FullTextIndexEventListener"/>
</event>
...
</session-factory>
Porém eu o faço programaticamente como abaixo:
Configuration ac = new AnnotationConfiguration()
.addAnnotatedClass(ClassA.class)
.addAnnotatedClass(ClassB.class)
.addAnnotatedClass(ClassC.class);/* (.......)*/
/*Demais configurações padrões*/
ac.setListener("post-update", new org.hibernate.search.event.FullTextIndexEventListener());
ac.setListener("post-insert", new org.hibernate.search.event.FullTextIndexEventListener());
ac.setListener("post-delete", new org.hibernate.search.event.FullTextIndexEventListener());
Onde eu uso o metodo setListener(); para adicionar programaticamente os eventos como no hibernate.cfg.xml;
Porém, na hora de rodar a aplicação acontece o seguinte erro:
18:55:45,718 ERROR [[Controller]] Servlet.service() for servlet Controller threw exception
java.lang.VerifyError: (class: org/hibernate/search/event/FullTextIndexEventListener, method: onPostInsert signature: (Lorg/hibernate/event/PostInsertEvent;)V) Incompatible argument to function
Será que o Listener está com algum bug? Afinal ele esta chamando o metodo onPostInsert erradamente. O quê fazer?