Actualización Liferay 7 GA3
Nuevo proceso de actualización
Como vimos en el anterior post, liferay DXP viene con una herramienta para la gestión de parches que hace todo el trabajo por nosotros.
Si usamos Liferay 7, el proceso de actualización es diferente ya que no tenemos acceso a dicha herramienta aunque disponemos de otra herramienta parecida. Como veremos el proceso es mas tedioso aunque tampoco tiene mucha dificultad.
Cada X tiempo, una nueva versión de liferay 7 es liberada. Antes de liferay 7 había un compromiso de liberar cada versión como máximo cada 6 meses. Ahora mismo desconozco si este compromiso sigue existiendo, aunque en estos momentos la última versión de liferay 7 es la ga3 y diría que se ha liberado una versión nueva cada 4 meses.
Esta es, para mí, una de las principales ventajas (aparte obviamente del soporte que ofrecen) de usar liferay DXP. Los service packs de liferay DXP son liberados cada pocas semanas por lo que el código siempre va a estar actualizado antes. Esto es importante sobre todo ante problemas de seguridad que puedan ir apareciendo. Con liferay DXP el problema se resolverá en poco tiempo, mientras que si usamos en liferay 7 pueden pasar meses hasta que se libere una versión que lo solucione (aunque claro, siempre lo puedes resolver tú mismo).
Como siempre, te voy a contar exactamente los pasos que he realizado para hacer la actualización. Si sigues este blog, verás que hemos realizado en anteriores entradas algunos cambios en nuestra instalación de liferay que quiero mantener durante la actualización y ese es uno de los motivos que haya tantos pasos para realizar. En la siguiente lista los voy a marcar como OPCIONAL para distinguir los pasos que tenemos que hacer por modificaciones previas o porque son estrictamente necesarios para la actualización.
- Descomprime la nueva versión de liferay 7. Siempre podéis descargar todas la versiones desde la web de sourceforge
- Ve a su directorio descomprimido. En mi caso /opt/liferay-ce-portal-7.0-ga3
- Deshabilita la indexación durante el proceso de upgrade. Para ello crea el siguiente fichero
/opt/liferay-ce-portal-7.0-ga3/osgi/configs/com.liferay.portal.search.configuration.IndexStatusManagerConfiguration.cfg
con el siguiente contenido
indexReadOnly=true
- Copia el contenido del directorio <INSTALACION_ANTIGUA>/data de la instalación antigua a la nueva
- Copia el <INSTALACION_ANTIGUA>/tomcat-8.0.32/webapps/ROOT/WEB-INF/classes/portal-ext.properties.
- (OPCIONAL) Si tienes publicada la conexión con la bbdd por jndi, comenta la siguiente linea
jdbc.default.jndi.name=jdbc/liferay
- Copia el <INSTALACION_ANTIGUA>/portal-setup-wizard.properties y cambia el valor de liferay.home al nuevo directorio de instalación
- Copia todos los <INSTALACION_ANTIGUA>/osgi/configs de los módulos que hayas modificado de la instalación antigua a la nueva
- (OPCIONAL - Si lo has modificado) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/conf/context.xml. Si has modificado otros ficheros como el server.xml también tendrás que copiarlos.
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32bin/setenv.sh
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/webapps/ROOT/WEB-INF/classes/META-INF/log4j.dtd
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/webapps/ROOT/WEB-INF/classes/META-INF/portal-log4j-ext.xml
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/lib/log4j*
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/lib/tomcat-juli-adapters.jar
- (OPCIONAL - Ver post sobre logs) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/bin/tomcat-juli.jar
- (OPCIONAL - Ver post sobre logs) Borra <INSTALACION_NUEVA>/tomcat-8.0.32/conf/logging.properties
- (OPCIONAL - Ver post sobre APR) Copia <INSTALACION_ANTIGUA>/tomcat-8.0.32/lib/libtcnative-1.*
- Ejecuta el cliente desde <INSTALACION_NUEVA>/tools/portal-tools-db-upgrade-client (asegúrate de tener el tomcat de la instalación antigua detenido)
java -jar com.liferay.portal.tools.db.upgrade.client.jar
Una vez ejecutado el anterior comando, el asistente os preguntará todo lo que necesita saber para hacer la actualización. Si quieres mas información sobre este proceso puedes consultar la documentación oficial.
Y después de un rato, si todo ha ido bien, terminará escribiendo esto
- Habilita nuevamente la indexación
indexReadOnly=false
- Copia todos tus módulos que hay en el directorio <INSTALACION_ANTIGUA>/osgi/modules al nuevo directorio de instalación
- Despliega tus temas de apariencia que hay en el directorio de la instalación en <INSTALACION_ANTIGUA>/osgi/war al nuevo directorio de instalación
(ojo, solo tus temas. Los que trae liferay por defecto no) - (OPCIONAL) Descomenta la línea del jndi que has comentado en el paso 6
- (OPCIONAL - Post pendiente sobre esto) Actualiza las versiones de tus modulos fragment para las nuevas versiones de los modules liferay
- Inicia el servidor
- (OPCIONAL - Ver post sobre software de terceros) Reinstala xuggler
Como puedes comprobar, hay muchos pasos opcionales que son necesarios ya que la actualización no se produce sobre la instalación existente, sino sobre una nueva, lo que obliga a tener que copiar todos los ficheros modificados previamente.