PROGICIELS | AGENCE DIGITALE | CONSEIL | INGÉNIERIE Aller de l’idée à l’accompagnement du changement UNE STRUCTURE INTERNATIONALE 1800 collaborateurs CA 165 M€ Partenaire de Liferay Conseil / intégration / accompagnement à la mise en place de portails collaboratifs
développements spécifiques En amont : réaliser des développements facilitant la mise à jour Méthode de mise à jour des portions de code issues de la version précédente Problématiques avancées liées aux données Réaliser une procédure de mise à jour de données spécifique Migration de données multi-sources Conclusion
instance = Mise à jour de la configuration + Mise à jour logiciel standard + Mise à jour standard des données + Mise à jour logiciel spécifique + Mise à jour spécifique des données
à la nouvelle version Adapter les développements spécifiques à la nouvelle version 2) Déploiement Installer une instance vierge dans la nouvelle version Installer les plugins spécifiques (développements & configuration) Connecter l’instance aux données existantes (DB + FS) Démarrer… Liferay met à jour automatiquement les données
il peut y avoir des spécificités dans la procédure : toujours se référer à la procédure officielle communiquée par Liferay Les montées de version vers les service packs peuvent être évitées par l’usage des “Hotfixes” Les fichiers portal-legacy-*.properties facilitent l’adaptation de la configuration L’adaptation des développements spécifiques représente en général l’essentiel de l’effort à fournir
à jour en amont ? Bonnes pratiques pour la réalisation de développements spécifiques : Faire la chasse aux copier-collers qui devront être migrés Isoler et délimiter les développements spécifiques
et/ou après le code original Exemple : ajouter un bandeau en tête de la portlet de login Code original Code spécifique Code spécifique <%@ include file= "login.portal.jsp" %> /html/portlet/login/login.jsp
méthode privée L’abus d’introspection peut être dangereux pour votre application Class clazz = … ; java.reflect.method m = clazz.getDeclaredMethod(…); … m.setAccessible(true); m.invoke(…);
des blocs de commentaires • Ajouts • Modifications • Suppressions Déporter les blocs de taille importante dans des fichiers JSPF <!-- BEGIN CUSTOM CODE --> … … <!-- END CUSTOM CODE --> <!-- BEGIN CUSTOM CODE --> <%@ include file="mypage.jspf" %> <!-- END CUSTOM CODE -->
code depuis Liferay resteront toujours inévitables dans certains cas • Dans certaines JSP • Dans certaines méthodes redéfinies Ces portions de code Ne doivent pas être reformatées Ne doivent pas être refactorées Doivent être délimitées par des commentaires (pour les classes Java)
regard • Le fichier natif de la version source • Le fichier modifié à partir de la version source • Le fichier natif de la version cible Des outils adaptés • WinMerge • MeId • Kdiff3 • Araxis Merge • … Adopter une méthode systématique • Plusieurs approches possibles
peuvent être dépendantes d’une version de Liferay Exemple : préférence de portlet référençant une image dans Liferay 6.0 Possibilité d’implémenter des “upgrade process” au sein des plugins spécifiques
version X Une instance Liferay cible en version Y Procédure 1. Montée de version sur chaque instance source 2. Export des données concernées au format LAR 3. Import des fichiers LAR Problématiques périphériques • Dates de création et de modification • Identité des utilisateurs
maximum certains développements spécifiques Appliquer des bonnes pratiques lors de la réalisation des développements Trouver le bon rythme • Evaluer les avantages de chaque montée de version potentielle • Considérer les Hotfixes • Ne pas attendre jusqu’à devoir faire un saut de géant (4.3 6.1) Suivre les procédures communiquées par Liferay Gérer chaque montée de version comme un vrai projet