Liferay with JRebel

1. Introduction

Le déploiement dans Liferay est souvent très long et fait perdre beaucoup de temps. Plusieurs outils (tels que l’éditeur de Liferay ou FileSync) permet de faire quelques rechargement à chaud. Cependant, on est souvent amener à redéployer complétement le WAR afin que les modifications soient prises en compte.

JRebel (pour ceux qui ne connaissent pas : http://zeroturnaround.com/software/jrebel/) permet de recharger les modifications instantanées.

Nous verrons dans cet article toutes les modifications possibles de développement des plugins Liferay avec JRebel.

2. Installation et configuration

L’autre document plus complet décrit l’installation et la configuration de JRebel. Je vous invite à y jeter un coup œil.

3. Plugins Liferay

3.1 Prélude

Nous ne ferons que les tests sur les principaux plugins Liferay. On exclura le plugins Web et Ext.

3.2 Portlet

Grâce à JRebel, les modifications (et éventuellement toute nouvelles classes créées) sont directement prise en compte par Liferay. Aucun déploiement n’est nécessaire.

De plus, on sait tous qu’après un certain nombre de redéploiement de portlet, on tombe sur un Permgem. On doit alors redémarrer le serveur Liferay qui prend ainsi plusieurs minutes. JRebel nous évite cette étape.
Cependant, JRebel ne prend pas en compte le Service Builder, c’est-à-dire qu’il n’exécutera pas les scripts SQL. Cependant, les modifications des classes Java sont prises en compte sans redéploiement.

3.3 Hook

Le rechargement à chaud par JRebel a permis de modifier :

  • Les JSPs
  • Les « indexer-post-processor »
  • Les « services » (classes surchargeant les services de Liferay)
  • Les « servlet-filter »
  • Les « struts-action »

Chaque ajout et/ou modification de fichiers et/ou de classes java doit s’accompagner d’un message de JRebel dans la console.

Grâce à JRebel, plus besoin de déployer de hook, celui-ci est pris en compte à chaud.

3.4 Thème et Layout template

Voici la liste dont JRebel a permis de recharger à chaud :

  • Templates
  • CSS en SASS
  • Images
  • Javascript
  • Propriétés du fichier liferay-look-and-feel.xml

LDS permet déjà de recharger à chaud certains éléments du thème tels que les « templates ».

Cependant il ne gère pas le SASS ou les propriétés du fichier « liferay-look-and-feel.xml » tandis que JRebel le permet.

4 Liferay Core

Parfois, on désire tester une modification d’un fichier de Liferay (classe Java, JSPs ou properties) mais pour cela, on doit créer un plugin (hook ou ext) afin de tester. Puis après le test, supprimer la modification. Cela prend énormément de temps. Avec JRebel, on peut directement modifier le code source de Liferay sans à avoir à déployer quelque chose (excepté les fichiers JRebel).

5 Conclusion

Utiliser JRebel sur les projets Liferay permet de gagner du temps chaque jour.

En effet, on gagne 15-20 min par jour (lorsque le projet a seulement 1 portlet) à plus de 200min par jour (avec un projet avec environ une vingtaine de portlet).

Pour définir ce temps, le nombre de déploiement par jour est d’environ une dizaine de fois par jour et 4 à 5 redémarrage du serveur Liferay par jour.

Par l’intermédiaire de JRebel, le développeur est concentré uniquement sur le code qui doit écrire et le résultat sur le navigateur. Ainsi tout ce qui est à coté, il peut ne pas se préoccuper tels que les déploiements via Maven par exemple.

Lien vers le document complet :
Liferay with JRebel_V0_1

You may also like...