Mostrando entradas con la etiqueta liferay. Mostrar todas las entradas
Mostrando entradas con la etiqueta liferay. Mostrar todas las entradas

jueves, 12 de julio de 2012

Acceder a un JournalArticle para recuperar sus datos

Hoy he encontrado una forma de acceder a los datos de un JournalArticle. Por medio de instanciar el servicio y realizar la llamada correspondiente al método para que me devuelva dicho objeto con los valores que necesito.

##Recuperar los datos del journal article tales como la plantilla y la estructura en la que se basa (por ejemplo)

#set ($jaService = $serviceLocator.findService("
com.liferay.portlet.journal.service.JournalArticleLocalService"))
#set ($JArticle = $jaService.getArticle($getterUtil.getLong($groupId), $reserved-article-id.data, $getterUtil.getDouble($reserved-article-version.data)))

A partir de $JArticle. podremos recuperar y utilizar los diferentes métodos que se ven en la clase JournarArticleWrapper y utilizarlos a gusto para recuperar los valores que necesitemos.

Por ejemplo:

$JArticle.getTemplateId()
$JArticle.getStructureId()

Como se puede ver es bastante simple, lo que no quita que haya sido un poco engorrosa la tarea.
Hay que tener en cuenta los objetos reservados de velocity para los journal articles ya que los utilizamos como parámetros para recuperar el JournalArticle, al igual que los objetos de velocity para parsear a long o Double los valores dados.
Estos objetos los encontré en la wiki de liferay sobre las variables de velocity referidas a los articles y en esta otra entrada en un listado mas extenso, otras clases que van a ser de gran utilidad, páginas que son de gran ayuda al igual que el foro.

Más adelante daré un ejemplo sobre la utilidad dada a esto.
Comentarios, dudas, sugerencias, CORRECCIONES, siempre son bienvenid@s!

domingo, 8 de julio de 2012

Buenas prácticas para trabajar con Liferay

Tengo un compañero de trabajo que sabe mucho de Liferay, pero sabe mucho de las tripas como decimos por ahí, quizá no tanto de la parte CMS de Liferay, aún así, es muy resolutivo y siempre dispuesto a echar una mano en lo que haga falta. Ahora que también se pelea un poco con la parte de CMS seguro que se le da mejor.
Como tributo yo voy a apuntar algunos de sus consejos para trabajar con Liferay.

"Descárgate las fuentes de Liferay y ponlas en un Eclipse como un proyecto nuevo así podrás ver las clases, los métodos y aprender como funciona, cómo y de de dónde se pueden recuperar las cosas..." (Todo esto con un acento español claramente)

Dicho y hecho, descargadas las fuentes, descomprimido el zip y en cuestión de minutos ya estaba mirando las clases, métodos y lo que hiciera falta!!

Liferay 6.1.0 con JBoss 7.0.2 Bundle (Postgresql 8.4)

Desconforme con no haber podido hacer funcionar la instalación de OpenCms y aún más con no encontrar información sobre la excepción que me está dando, me dispongo a instalar el bundle de Liferay 6.1.0 con JBoss 7 asi lo tengo montado para cuando quiera inventar algo o intentar hacer alguna cosa aca en casa.
Para ello las siguientes herramientas:
  • Ubuntu 12.04 como siempre! 
  • PostgreSql 8.4
  • Bundle de Liferay con JBoss 7.0.2 (Descargado de sourceforge)
  • Un poco menos de paciencia que para la instalación de OpenCms porque ya lo hemos visto funcionando... o hubo problemas con jpa tambien... :S
Bien el bundle tardará un poco en descargar, lo que es normal en sourceforge, o al menos para mi lo es, asi que mientras tanto, nos preparamos un directorio como para tener nuestro bundle bien localizado. El directorio sera /opt/ como no podía ser de otra forma.
Pero hey! ya que estamos podemos ir creando la base de datos ¿no? Pues eso, a crear la base de datos que utilizaremos, aunque el bundle ya viene con una hsql por defecto, no está mal la idea de trabajar sobre un PostgreSql y asi tener todas las bases de datos juntas.
Entonces a crear la base de datos.
Accedemos a postgres y ejecutamos las 3 sentencias siguientes:

  1. postgres=# create user liferay with password 'liferay';
    CREATE ROLE
  2. postgres=# create DATABASE lportal with owner liferay;
    CREATE DATABASE
  3. postgres=# grant ALL privileges on database lportal to liferay;
    GRANT
Una vez realizado esto ya tendremos nuestra base de datos para que la instalación de liferay vuelque los datos.

Al parecer ya se descargó del todo así que toca descomprimir y copiar a /opt/ como siempre, a la hora de descomprimir lo alojamos en  /tmp/, hacemos el unzip y nos creará una carpeta que copiaremos a /opt/.
Dentro de la carpeta tendremos ya todo prácticamente listo para trabajar.

Como es un bundle para trabajar en local y hacer pruebas y aprender yo personalmente (NO RECOMENDABLE) paso un poco de los permisos de usuario del sistema y cambio el propietario de todo el directorio (y subdirectorios del bundle) haciendo un

"chown -R usuario:usuario liferay-portal-6.1.0-ce-ga1/"

Luego de hacer esto iniciamos el JBoss con el script standalone.sh y al finalizar nos aparecerá en nuestra ventana del navegador la configuración.

Aca indicaremos los datos que queramos y en la parte de la base de datos indicaremos que vamos a usar otra que no es la HSQL por defecto, tambien le indicaremos el nombre de la base de datos que está indicado al final de la cadena de conexión (lportal) y el usuario y contraseña que vamos a usar y que fue definido previamente. En el ejemplo pusimos liferay con contraseña liferay.

Si todo terminó bien nos mostrará un mensaje y ya podremos utilizar nuestra instalación de liferay.

Esto fue fácil, no tiene muchas complicaciones, pero bueno, hay que hacerlo y pueden surgir algunos problemas que siempre se pueden arreglar.