Upgrade del portal de zylk a liferay portal 6.0.6 CE

El miercoles pasado actualizamos el portal de zylk.net a la ultima versión de Liferay Portal - versión 6.0.6 CE.
De este modo, este portal ha llevado a cabo su cuarto upgrade:
   5.0.x > 5.1.x > 5.2.x > 6.0.6


Aunque mientras escribo esto creo que la primera versión del portal comenzó en la versión 4, pero de eso no me queda constancia en los backups así que no se si lo soñé.
En estos años hemos convivido con cambios realmente importantes entre versiones del producto, como la remodelación del sistema de permisos en la versión 5.2.3 o el workflow y renderizado de assets en esta ultima versión.

De este modo, por poner algunos de los números al upgrade, el portal aloja/gestiona tres sites en configuración de multisite (porque liferay es multi*) con dominios diferentes como son: 

http://www.zylk.net

http://www.sinadura.net

http://usatudnie.asolif.es/

Además de

11 intranets de clientes, donde trabajamos colaborativamente en comunidades conceptualmente similares a lo que hoy en día es el Social Office de Liferay.

Otros número de interés del portal son
  200 usuarios entre todas las comunidades web / intranets
  182 páginas en los distintos sites
  125 entradas en los blogs
  970 mensajes en los foros
  Alrededor de 7Gb (unos 500 documentos) en la biblioteca de documentos.
  5 portlets desarrollados a medida
  3 temas desarrollados a medida

 

 

A esto se suma la integración con los gestores documentales: Alfresco 3.4 (via los nuevos portlets para Alfresco Share) Nuxeo (mediante los portlets a través de servicios REST) Y del gestor de incidencias Mantis. También hemos probado el conector de CMIS para la Document Library, aunque esperaremos al nuevo conector de la 6.1 más integrado con Alfresco para conectarlo. Sin embargo, el proceso de actualización no ha sido tan straight-forward como nos hubiese gustado en nuestra configuracion tomcat-postgres, y han sido necesarios algunos pequeños ajustes. Una característica que nos ha ayudado bastante, es la nueva consola web para ejecución de scripts (groovy, python, beanshell o javascript) en servidor, de forma rápida y directa, la cual nos da acceso total al API de Liferay para realizar tareas de mantenimiento. Por ejemplo, tras el proceso de migración de algoritmo de permisos del 2 (permisos sobre usuarios y roles) al 6 (permisos únicamente sobre roles), Liferay nos ha generado múltiples roles que hemso visto oportunos eliminar haciendo uso del siguiente script:

Groovy{

 java.util.List roles = com.liferay.portal.service.RoleLocalServiceUtil.getRoles(10097); 

 java.util.Iterator itRoles = roles.iterator();

 while (itRoles.hasNext()) {

 com.liferay.portal.model.Role role = (com.liferay.portal.model.Role) itRoles.next();

 if ( role.getDescription().contains("generated") )

 { 

  com.liferay.portal.service.RoleLocalServiceUtil.deleteRole(role);

}

}

}

 

 

Hemos tenido algunos problemitas con las entradas del blog, que en el proceso de actualización no se le ha asignado el valor 0 a la columna status de la tabla 'blogsentry', el estado del asset, y al quedarse este a valor nulo (esto igual no pasa en mysql) un usuario no administrador se veía imposibilitado a visualizar las entradas.

Esto parece afectar también a la información que recoge el portlet 'recent bloggers'. Lo que hemos hecho ha sido aplicar un pequeño truco de exportación/importación de las entradas a través de los LARs, sin tener en cuenta los permisos que tuvieran, y de este modo el propio sistema de Liferay se ha encargado de corregir los campos necesarios para solventar ambos problemas.

Hemos migrado a la versión 6.0.6 en vez de a la 6.0.5 que teníamos inicialmente previsto, porque la actualización de la DL (en jackrabbit) tenia un pequeño bug, y cuando faltaba algún documento se paraba todo el proceso de actualización. En esta última versión parece que ese check esta en un try-catch y permite proseguir la migración.

A la hora de descargar ficheros de la DL nos hemos visto también con otro problema de migración, la necesidad de modificar el caracter decimal del campo 'version' que afecta a dos tablas, teniendo que cambiar la ',', por el '.'.

También hemos modificado en las templates de velocity la clase 'JournalArticleLocalServiceUtil', a favor de 'JournalArticleLocalService'. El cambio de clase no ha resultado costoso. También comentar, que hemos incorporado tres temas nuevos, que heredan de uno padre para no tener que heredar constantemente del _styled y _unstyled tal y como recomienda Liferay y hemos creado un pequeño portlet para que contabilice las descargas de 'Sinadura', alojadas todas en un directorio de la DL de dicha comunidad.

 

 

Por ultimo, todo el proceso de despliegue de los temas y portles se ha automatizado con tareas de Hudson, que sincronizan los desarrollos de plugins realizados con nuestro repositorio de control de versiones (subversion). Siguiendo con esta filosofía desplegaremos próximamente todos nuestros portlets en una nueva comunidad labs.zylk.net donde testaremos los nuevos desarrollos.

00

More Blog Entries

0 Comments