Url Link

Migration de version avec les Jumbo Patchs

In brief...
Cet article décrit le principe de fonctionnement des Jumbo Patchs et leur application avec les Jumbo Patch Tools, pour la migration d'une webapp JCMS vers une version de maintenance.
Subject Exploitation & Technical Administration
Maintenance & Evolution
Products
Published 4/12/10
Writer Olivier Jaquemet

1. Introduction

1.1 Principe général

Les Jumbo Patchs sont des archives au format ZIP permettant une migration plus rapide et plus simple entre 2 versions de maintenance de JCMS.

  1. Jalios crée un Jumbo Patch
  2. La personne en charge de la migration applique le Jumbo Patch avec l'outil JumboPatchDeploy
  3. Cette même personne ré-applique les développements spécifiques.

IMPORTANT 1 : Les Jumbo Patchs doivent impérativement être appliqués en utilisant l'outil JumboPatchDeploy. Ne décompressez jamais manuellement un Jumbo Patch dans une webapp JCMS.

IMPORTANT 2 : lors de l'application d'un jumbopatch, les classes situées dans WEB-INF/classes/com/jalios/ sont supprimées. Par conséquent, si vous avez créé des classes spécifiques à vos plugins dans l'arborescence WEB-INF/classes/com/jalios/jcmsplugin, il faut impérativement les remettre derrière le passage du patch (et donc backuper au préalable les classes en question).

1.2 Téléchargement des outils

Les JumboPatchTools sont fournis dans un seul et unique fichier JAR afin de faciliter leur utilisation.
Cliquez sur le lien suivant pour télécharger la dernière version disponible :

IMPORTANT : ne mettez JAMAIS ce jar dans une webapp JCMS.

1.3 Téléchargement des Jumbo Patchs

Les Jumbo Patchs sont disponibles sur le site support dans la section Téléchargement / JCMS / Jumbo Patches.

2. Déploiement d'un Jumbo Patch

2.1 Prérequis

  • une webapp JCMS à migrer
  • le jumbo patch spécifique à la version mineure de votre webapp JCMS

2.2 Principe de fonctionnement

Voici les différentes taches que l'outil fait à votre place :

  1. Une vérification est effectuée pour s'assurer que la webapp est compatible avec le patch,
  2. Les fichiers à supprimer sont effacés de la webapp,
  3. Les fichiers nouveaux ou non conflictuels sont copiés dans la webapp,
  4. Les fichiers conflictuels sont marqués de la façon suivante :
    • Le fichier modifié de la webapp est renommé avec l'extension ".custom"
    • Le fichier issue du patch est appliqué,
  5. Les répertoires WEB-INF/classes/generated, WEB-INF/classes/com/jalios et WEB-INF/jcmwork/ sont effacés complétement.

2.3 Utilisation

L'outil peut être lancé soit en ligne de commande, soit depuis Eclipse en référençant le jar dans un lanceur Java.

Avant tout : effectuez une sauvegarde complète de votre webapp actuelle.

Première étape : vérifiez ce qui va être fait, en spécifiant l'option -dryrun

 java -jar jcms-jumbo-patch-tools-1.0.jar -dryrun patch-60-to-602.zip jcms-6.0.0/

Seconde étape : déclenchez le déploiement du patch

  java -jar jcms-jumbo-patch-tools-1.0.jar patch-60-to-602.zip jcms-6.0.0/

Après application du patch, un fichier de log, avec un résumé de toutes les modifications, est accessible dans la webapp pour historique : WEB-INF/data/logs/jumbo-patch-deploy.log (en cas de nouvelle migration, il sera simplement complété)

Troisième étape : résoudre les conflits.
Cherchez manuellement tous les fichiers .custom dans la webapp et comparez-les avec le nouveau fichier, dans lequel vous reporterez les modifications éventuelles.
Exemple : si doArticleFullDisplay.jsp a été modifié, alors après application du patch on trouvera les 2 fichiers suivants :

  • doArticleFullDisplay.jsp.custom (version modifiée )
  • doArticleFullDisplay.jsp (fichier de la nouvelle version de JCMS)

3. Informations avancées

En plus des fichiers propre à JCMS, un jumbo patch contient :

  • un fichier de propriété le décrivant (date de création, version jcms source, version jcms cible): WEB-INF/jalios/jumbo-patch.prop
  • 3 fichiers de références déployés tel quel :
    • WEB-INF/data/custom.prop.default
    • WEB-INF/data/webapp.prop.default
    • WEB-INF/data/store.xml.default

Les fichiers qui doivent être supprimés pour la migration sont présents dans le Jumbo Patch sous la forme de fichiers vides.

Sous unix, pour obtenir la liste des fichiers qui sont en conflit avant toute modification, il suffit de taper la commande suivante :

 java -jar jcms-jumbo-patch-tools-1.0.jar -dryrun -debug jumbopatch-6.1.1-6.1.3.zip jcms-6.1.1/ | grep Renaming

Member Discussions

  Title Messages Last post

Formidable

Benoît Moraillon - on 10/11/11 at 10:07 AM

2
  Olivier Jaquemet
on 10/11/11 at 11:02 AM
Login   Home   fr en
JALIOS SA - SIREN 440 126 035