Una de las características que puden resultar interesantes a la
hora de integrar servicios dentro de un gestor de portales es la
posibilidad de integrar las búsquedas de los servicios ofrecidos por
el portal en un buscador único.
Para cubrir esta necesidad
liferay propone el uso de OpenSearch.
Como ejemplo de implementación de esta característica vamos a
utilizar un portlet de gestión de incidencia desarrollado internamente
por www.zylk.net. Este portlet se
utiliza a nivel interno en algunos proyectos y a nivel público en la
página de sinadura, para que los
usuarios/clientes puedan reportar incidencias desde un interfaz web
sin tener que darles acceso a la herramienta de gestión de
incidencias. Es un portlet que utilizando la capa de servicios web
ofrecida por el gestor de
incidencias mantis sirve para dar de alta incidencias en propio
gestor de incidencias.
El problemas del portlet es que solo
permite la busqueda de las incidencias por id y desde el buscador
implementado en el propio portlet.
Para solventar este tema
podemos configurar el descriptor de despliegue del portlet
(liferay-portlet.xml) y añadirle la siguiente opción:
<open-search-class>net.zylk.search.MantisIssuerSearcher</open-search-class>
Que es una clase que implementa la interfaz
public class MantisIssuerSearcher implements com.liferay.portal.kernel.search.OpenSearch
Con esto al desplegar el portlet en nuestro liferay y hacer uso
del portlet de búsqueda genérico, se añadirá al resultado de la
busqueda una nuevo aparado que contendrá los resultados devueltos por
la implementación de la clase.
Otra característica interesante siguiendo esta linea es la de
implementar la interfaz
com.liferay.portal.kernel.search.Indexer
Para que el motor de indexación del portal (lucene o solr) indexe los contenidos
dados de alta desde este portlet, pero eso lo dejaremos para otro artículo…