Tag Archives: Alfresco

15Sep/20

ADF/ADW/Process : pilotez vos process avec la nouvelle Digital Workspace d’Alfresco

Bluexml vous attend au salon Documation les 22, 23 et 24 septembre 2020

Pavillon 4.3 / stand D76-E75

Le 24/09 à 16h, atelier ADF/ADW/Process : dématérialisez vos marchés avec la nouvelle Digital Workspace d’Alfresco !

Basé sur un REX du CD34, cet atelier présentera comment le CD34 a intégré la nouvelle Digital Workspace d’Alfresco avec Flowable dans le cadre de la dématérialisation des marchés.

15Juin/20

Bluexml devient partenaire Ephesoft

 

Bluexml devient partenaire ephesoft et vous accompagne dans la dématérialisation de vos documents à l’aide de cette solution, leader de son domaine.

Elue partenaire technologique par Alfresco pour l’année 2019, la solution Ephesoft permet de capturer et enrichir vos documents en lui associant des mots-clés issus du contenu, facilitant son classement et sa réutilisation.

En savoir +

26Mai/20

Retour d’expérience : Le Mans Métropole dématérialise les fiches de synthèse des marchés publics

Afin de faciliter le suivi des marchés publics et donner la possibilité aux différents acteurs de consulter les documents de synthèse des marchés, Le Mans Métropole a développé un outil indépendant des applications métiers.

Le retour d’expérience complet est disponible sur le CLUB.

14Mai/20

L’innovation, une création de valeurs qui profite à tout le monde

L’innovation profite à tout le monde

Une création de valeur pour nos clients

Via nos pratiques d’innovation, nous testons des produits et des technologies afin de trouver la meilleure solution pour répondre aux besoins de nos clients d’un point de vue technique, fonctionnel et budgétaire.

Nous réalisons des études de faisabilité, des prototypes (Proof Of Concept) et tenons à jour une plateforme de démonstration pour leur présenter l’état de l’art dans nos différents domaines d’intervention.

Nous animons également un club utilisateurs (https://connect.bluexml.com) qui rassemble nos clients et leur permet d’échanger autour de leurs expériences. Ces dernières constituent souvent des innovations pour nos clients qui, lors de ces projets de dématérialisation, augmentent généralement leur productivité et améliorent leurs délais de traitement et relations aux usagers.

Une création de valeur pour nos collaborateurs

Travailler sur les mêmes technologies dans les mêmes domaines permet d’accumuler de l’expérience pour produire mieux et plus vite mais génère également de la lassitude. L’innovation est le moyen de limiter celle-ci en permettant à nos collaborateurs d’explorer de nouveaux horizons et garder intact leur motivation. C’est également la possibilité de continuer à apprendre et améliorer son parcours, son expertise.

Nos collaborateurs développent et intègrent des solutions pour répondre aux besoins de nos clients. Cependant, au fur et à mesure de nos projets se dégagent des améliorations par rapport aux premiers projets réalisés. En outre, de nouvelles approches sont testées par l’ensemble du secteur informatique et une veille technique, technologique permanente nous permet d’intégrer ces nouveaux éléments dans nos solutions. Bien sûr, chacun le fait individuellement et acquiert des compétences supplémentaires, mais ce n’est pas simple car il faut trouver le moment d’équilibre qui permette de s’y consacrer entre les délais de production et les dates de livraison à respecter ainsi que les activités de maintenance qui peuvent survenir à tout moment.

Une création de valeur pour Bluexml

Nous positionnons l’innovation au centre des valeurs de Bluexml pour que cela profite au collectif et passe de l’enrichissement personnel à celui de l’entreprise pour la diffuser au client.

Comme on le dit souvent : “Seul, on va plus vite mais, ensemble, on va plus loin”. C’est clairement le cas. Travailler à plusieurs permet de consolider les connaissances par leur confrontation avec les autres mais aussi de les diffuser au sein de Bluexml en les présentant à l’équipe sous forme de vidéos et de blogs. C’est de cette manière qu’elles pourront être réutilisées et maintenues au sein des projets réalisés.

En 2018 et 2019, nous avons ainsi mis en place les Blue Friday, 1/2 journée par semaine, le vendredi après-midi, permettant de se consacrer à l’innovation. Cependant, il n’est pas toujours aisé de se remettre à l’ouvrage toutes les semaines, et, pour peu qu’une contrainte de production survienne, nos collaborateurs reportent rapidement cet investissement pourtant capital. En outre, l’effort dispersé aboutit rarement à un résultat probant.

En 2020, nous avons décidé de regrouper l’activité d’innovation en plusieurs mini-projets permettant de fixer une durée limitée et un périmètre raisonnable, et de les traiter comme de véritables projets : au lieu d’éparpiller notre effort, nous avons pu nous concentrer sur certains investissements qui deviennent visibles sur notre plate-forme de démonstration, pour nos clients mais aussi pour nos services de communication et de vente. En outre, nos collaborateurs ont la satisfaction de démarrer une activité et de la mener à son terme.

Notre démarche et notre pratique évoluent avec le temps et les retours d’expérience acquis. C’est cette dynamique que Bluexml partage avec ses collaborateurs et ses clients, notamment à travers le CLUB (CLub des Utilisateurs de Bluexml).

L’histoire de l’innovation chez Bluexml

  • 2020 : RPA
  • 2019 : Archivage
  • 2018 : Architecture transverse
  • 2017 : BlueCourrier
  • 2016 : Side for Alfresco
  • 2010-2016 : MDA for Alfresco
  • 2009 : MDA for Cocoon
  • 2005-2008 : Cocoon et xml
27Août/19

Le pôle production de Bluexml se renforce encore

Nous avons accueilli cet été Thomelin et Sébastien qui rejoignent l’équipe production comme ingénieurs Etudes et Développement.

Forts d’expériences dans le développement, Thomelin et Sébastien ont travaillé sur des projets divers et variés dans le monde de l’ECM, notamment avec Alfresco, et du BPM.

« Nous sommes heureux de ces nouvelles intégrations avec des collaborateurs directement opérationnels et dynamiques. Et nous poursuivons notre croissance organique, en portant le nombre à 5 nouvelles recrues sur ce début d’année. Et les mois à venir seront encore riches !»
Eric LE GAREC, CEO Bluexml.

Suivez-nous sur les réseaux sociaux
 

03Juil/19

Le pôle production de Bluexml se renforce

Nous accueillons cette semaine Benjamin qui rejoint l’équipe production comme ingénieur Etudes et Développement.

Fort d’une expérience de 8 ans dans le développement, Benjamin a travaillé sur des projets divers et variés comme la mise en place d’un portail client multi-applicatif avec l’ECM Alfresco, ou encore la migration Alfresco vers SharePoint Online. Benjamin rejoint les équipes de Bluexml avec des compétences Alfresco, Java, Office 365, SharePoint online, Talend, Eclipse, PostgreSQL…

« Je suis venu chez Bluexml car je souhaite prendre de la hauteur sur le métier de concepteur développeur, mais aussi pour travailler en relation avec les clients. Bluexml est une structure à taille humaine, la proximité avec l’équipe m’a attiré. Et venir travailler au centre-ville de Nantes est très agréable ».

Bienvenue Benjamin !

Suivez-nous sur les réseaux sociaux
 

30Avr/19

(3/3) Analyse d’une politique documentaire : cas client

Etude fonctionnelle : Politique documentaire

A partir des éléments injectés dans ELK, on peut également obtenir un export csv répondant à la requête. On peut ainsi reconstruire pour chaque source un fichier csv avec la liste des 3 premiers niveaux d’arborescence et extraire automatiquement une carte cognitive. Cette dernière facilite la communication et permet une analyse “a priori” puis un travail de reconstruction avec un spécialiste métier.

On a ainsi les images Avant/Après facilitant la conduite du changement et la mise en oeuvre d’un plan d’actions.

L’étude porte ainsi sur les éléments suivants :

  • M: Lecteur réseau organisationnel : contient des répertoires pour chaque service de l’organisation ;
  • N: Lecteur réseau commun : contient des répertoires pour chaque projet ou élément commun à l’organisation ;
  • O: Serveur Alfresco : contient les répertoires pour chaque nouveau projet ou chaque nouvel élément commun qui est basculé sur le serveur Alfresco. Les éléments organisationnels sont aussi peu à peu basculés sur Alfresco.

M: Lecteur Organisationnel

Les premiers niveaux d’arborescence sur un serveur réseau “organisationnel” correspondent généralement aux niveaux suivants :

  • Direction
  • Département
  • Service…

Arborescence

On peut extraire ce genre de carte :

/Users/bxml/Desktop/Tmp/Screenshots/Capture d’écran 2019-04-09 à 11.33.21.png

Eléments communs

On trouve normalement des éléments liés à l’organisation de la direction/service/cellule, à la gestion opérationnelle des personnels associés (RH, formation, règlement intérieur…) :

  • Plannings
  • Congés
  • Compte-rendus
  • Modèles
  • Outils
  • Processus

Conclusion

A la lecture des plans de classement, on constate souvent des anomalies de ce type :

  • Trop d’éléments, rendant la compréhension difficile ;
  • Des références à des personnes (via leur nom, leur prénom) empêchant un stockage mutualisé des informations ;
  • Des références à des événements précis (via la date d’une journée), empêchant le stockage d’éléments ultérieurs ;
  • Des noms mêlant une information et une année, empêchant une déclinaison naturelle sur plusieurs années
  • Des noms correspondants à des types de fichiers, obligeant à parcourir le répertoire pour connaître son contenu

N: Lecteur commun

Désolé, cette section est n’est pas reproduite car les éléments issus d’une réelle étude client sont trop nombreux pour être anonymisés correctement.

O : Serveur Alfresco

Arborescence

/Users/bxml/Desktop/Tmp/Screenshots/Capture d’écran 2019-04-09 à 11.35.07.png

L’arborescence ci-dessus a été construite en regroupant manuellement les éléments. En effet, le concept de site ne supporte pas les hiérarchies qu’on reproduit généralement à l’aide de conventions de nommage.

Bonnes pratiques : les préconisations

On reprend les anomalies précédentes et on liste les solutions possibles :

Trop d’éléments gêne la visibilité

Afin de permettre une navigation fluide et pertinente, il faut respecter les règles suivantes la compréhension, la mémorisation :

  • Eviter plus de 20 éléments par répertoire
  • Créer des sous-répertoires pour regrouper les éléments par thèmes/sous-thèmes
Eviter les références aux éléments susceptibles de changer

Ce sont les personnes qui changent le plus dans les organisations. Ainsi, il faut éviter les noms et/ou prénoms dans les noms de répertoires (Michel, Stéphanie…) car lorsque la personne s’en va, il est difficile de savoir si les données sont privées, quels sont les thèmes concernés, ce qu’il faut garder, jeter… C’est le genre de répertoire qu’on retrouve plusieurs années après le départ de la personne…

Isoler les années

Il faut éviter de nommer un répertoire en ajoutant une année, caractéristique des événements, car cela bloque les regroupements automatiques. Si l’événement est amené à se reproduire, alors faire un répertoire du nom de l’événement puis un répertoire avec les années. Le fait d’isoler l’année permettra de consolider les données au niveau tranverse.

Ne pas utiliser de répertoires explicitant le type des fichiers

Cette information peut être obtenue automatiquement par la GED en se basant (en partie) sur le suffixe du fichier, il n’est donc pas nécessaire de l’expliciter et lui préférer un répertoire porteur de sens.

Donner du sens

Il est plus facile de mémoriser une arborescence porteuse d’une logique métier, que l’utilisateur manipule tous les jours de manière implicite, plutôt qu’une succession de tâches qui peuvent être très variées. L’arborescence devient du coup dure à comprendre et à suivre avec le risque que des répertoires redondants soient créés.

Conclusions

Revoir les PDC en fonction des règles ci-dessus et faire des préconisations pour chaque service département, service, mission, projet… Attention, le traitement de répertoires correspondant à des unités organisationnelles complexes (avec plusieurs centaines de milliers de fichiers) sera plus long que les répertoires d’une simple unité organisationnelle (avec quelques centaines voire milliers de fichiers au maximum).

Conclusion

L’utilisation d’un système d’indexation est fondamentale pour vous aider à connaître votre système documentaire, pour l’améliorer et vous aider à la conduite du changement en identifiant les sources de gaspillage et les pistes d’amélioration.

Afin d’avoir un véritable système outil de supervision et de pilotage de votre SI documentaire, il est nécessaire de mettre en place une collecte continue des informations seul moyen qui permettra d’obtenir un outil de supervision en temps réel de votre SI documentaire.

 

Suivez bluexml sur les réseaux sociaux

24Avr/19

(2/3) Analyse d’une politique documentaire : cas client

Etude technique : indicateurs

Généralement, les indicateurs attendus sont les suivants :

  • Répartition et évolution des documents en nombre et volume
  • Comprendre les pics de création de documents
  • Répartition des documents en fonction de l’organisation (DGA/Pôle/Département ou Service…)
  • Répartition des documents par type de fichiers (extension)

L’indicateur supplémentaire suivant, plus complexe à calculer, est souvent attendu :

  • Recherche de doublons

Phase1 : répartition et évolution

Evolution du nombre total de documents et de leur volume par serveur

Le stockage est actuellement réalisé sur 3 composants :

  • Lecteur réseau M : (Organisationnel)
  • Lecteur réseau N : (Commun)
  • Lecteur 0 : (Serveur Alfresco)

Le nombre de documents augmente constamment sur chaque composant alors qu’on pourrait s’attendre à voir diminuer ce nombre sur les serveurs réseaux au profit du serveur Alfresco. Au contraire, on constate même que le nombre de documents augmente plus vite sur le lecteur réseau « Organisationnel ».

Alfresco est vraisemblablement utilisé pour répondre à d’autres besoins, notamment des besoins collaboratifs.

Répartition des documents en nombre et en volume entre les différents serveurs

Evolution mensuelle du nombre de création de documents et de leur taille moyenne quelle que soit l’origine des documents

En cliquant sur un point précis, on peut avoir l’explication de sa valeur avec le détail des éléments ayant permis son calcul, comme la liste des documents comptabilités. On s’aperçoit ainsi que les pics de création de documents correspondent à des imports en grand nombre d’éléments de taille importante venant par exemple de la direction technique ou de la communication.

Répartition du nombre de documents par Niv1 (DGA) x Niv2 (Pôle) x Niv3 (Direction…)

Répartition des documents en fonction du nombre et du volume selon leur extension

 

Phase 2 : Recherche des doublons

Plusieurs solutions sont possibles :

  • lister les fichiers avec le même nom et regarder par la suite si les documents sont identiques (même taille et même md5). Le hash md5 peut être long à calculer sur des millions de fichiers, cette approche n’est pas toujours envisagée ;
  • lister les fichiers avec le même nom et la même taille en une seule passe et vérifier par la suite s’ils ont la même taille.

Cette seconde approche est souvent plus simple et plus rapide à mettre en oeuvre.

Script

La requête suivante sur ELK permet de récupérer tous les fichiers de plus de 10K dont le nom et la taille sont identiques. Pour garantir qu’il s’agit de doublons, il faudrait utiliser un hash md5 mais à défaut de celui-ci cela permet d’avoir une forte présomption de doublon.

 

Sur cette base, on peut obtenir un fichier json, qui peut être converti en csv, avec finalement les résultats suivants :

  • Nombre de fichiers > 10 Ko étudiés avec le même nom et la même taille : 10 000 fichiers
  • Nombre de résultats : 309 173
  • Nombre de répétitions : 16 à 2432 (situation.xls)
  • Place occupée : 1 835 Mo
  • Place optimale : 115 Mo

La taille est multipliée par 15, le nombre de fichiers par 35, ce qui entraîne un gaspillage de ressources, de temps et de maintenance et risque de se traduire par la conservation ‘ad vitam’ de centaines de milliers (pour ne pas dire plusieurs millions) de fichiers redondants…

Les 25 plus grandes répétitions quelle que soit la source

Dans notre cas d’utilisation, on ne connaît que les noms de fichiers, mais pas la source. Pour cela, il faudrait faire une requête supplémentaire sur chaque nom afin de savoir comment il se répartit sur chaque racine.

Le nom des fichiers répétés permet de se faire une idée des fichiers redondants.

Les 25 plus grands gaspillages

Conclusion

L’analyse des doublons est un peu “laborieuse” (données à nettoyer). Un indicateur intéressant serait de calculer la répartition des doublons d’un même fichier sur différentes sources afin de mieux comprendre le mécanisme de propagation et mettre en place des actions pour modifier les comportements.

16Avr/19
/Users/bxml/Desktop/Tmp/Screenshots/Capture d’écran 2019-04-09 à 11.49.26.png

(1/3) Analyse d’une politique documentaire : cas client

Préambule

Ce billet de blog présente le travail réalisé pour un client institutionnel dans le cadre d’une mission d’analyse de leur politique documentaire.

Ce billet se décompose en 3 parties :

  • Présentation de l’objectif, du contexte et de la démarche
  • Présentation de l’étude technique avec une partie des indicateurs obtenus
  • Présentation de l’étude fonctionnelle avec une partie des arborescences

/Users/bxml/Desktop/Tmp/Screenshots/Capture d’écran 2019-04-09 à 11.49.26.png

 

Introduction

L’objectif de l’audit est de réaliser une analyse des contenus stockés dans leur fonds documentaire dans leur totalité (environ 20 To) :

  • un serveur de fichiers Windows, organisationnel (avec les contenus de chaque direction) ;
  • un serveur de fichiers Windows, communs (avec les contenus transverses) ;
  • un serveur de GED Alfresco (avec les contenus collaboratifs).

Cette analyse s’effectue généralement en collaboration avec la DSI et se décompose en 2 parties :

  • une étude technique des contenus stockés sur les différents composants ;
  • une étude fonctionnelle de ces contenus.

Démarche

L’objectif est de lister tous les fichiers contenus dans les systèmes ci-dessus, en récupérant les métadonnées disponibles dans un fichier au format csv. Le nombre de fichiers étant considérable, cette collecte est découpée en plusieurs sous-ensembles afin de ne pas surcharger le système lors de la récupération de ce listing. En outre, afin de pouvoir analyser les contenus extrêmement nombreux (plusieurs millions de ligne), un tableur n’est pas suffisant, il est ainsi prévu d’indexer et rechercher les contenus à l’aide de l’outil spécialisé Elasticsearch (ELK) de la société éponyme.

 

Listing au format csv

Liste des fichiers

Deux scripts ont été écrits en powershell 2 afin de permettre la récupération de ces éléments sur Windows :

  1. Un premier script liste les éléments principaux de premier niveau (c’est à dire les sous-répertoires) du répertoire passé en paramètre et appelle un deuxième script pour chacun des sous-répertoires principaux identifiés ;
  2. Le deuxième script liste tous les fichiers contenus dans le répertoire principal ou un de ses sous-répertoires.

Le premier script pilote le deuxième script. Le premier script a été lancé à la main à des moments propices (soirée, veille de we) pour éviter de trop surcharger le système pendant l’exploitation quotidienne.

Le fichier csv ressemble à ceci :

En parallèle du lancement des scripts de comptage, il faut également lancer la fonction de Windows permettant de compter le nombre et le volume des fichiers et répertoires pour un répertoire donné.

Erreurs

Certaines erreurs apparaissent :

  • répertoires inaccessibles, pour des raisons de droits ;
  • répertoires ou fichiers avec un nom trop long ;
  • répertoires ou fichiers avec des caractères interdits.

Dans l’absolu, il faudrait traiter ces erreurs. Cependant, un comptage a été fait en parallèle par le système Windows et comparé au nombre de répertoires et fichiers trouvés via les scripts ci-dessus. La différence n’est pas significative et on peut simplement ignorer ces erreur.

 

Injection dans le système d’indexation ELK

Le système d’indexation ELK facilite le comptage et le regroupement des données en fonction des indicateurs souhaités afin de faciliter le calcul des éléments techniques mais aussi l’étude du fonds documentaire.

ELK est un système d’indexation de contenus basé sur 3 composants :

  • Logstash pour la récupération et l’analyse des données en amont, en l’occurrence les fichiers csv générés par les scripts précédents ;
  • Elasticsearch, pour l’indexation des données ;
  • Kibana, pour la navigation dans les données.

Traitement et import des données

Logstash permet le traitement et l’import des données afin d’extraire toutes les informations souhaitées. Par exemple, l’extraction de la source de données (Lecteur M: dans notre cas) ou la conversion de la taille des documents en Ko afin de faciliter la lecture. Attention à bien conserver toutes les données afin de pouvoir les réutiliser si nécessaire.

Requête et comptage

Elasticsearch permet la création de requêtes pour extraire et compter le nombre de fichiers comme par exemple compter le nombre de documents par source ou leur taille.

La requête suivante permet par exemple de ne compter que les documents respectant certaines contraintes :

 

Tableaux de bord

Kibana permet la création de tableaux de bords, notamment avec la fonctionnalité TimeLion permettant de calculer et afficher des indicateurs sur le même graphique afin, par exemple, de comparer l’évolution du nombre de documents dans le temps en fonction de leur source.

/Users/bxml/Desktop/Tmp/Screenshots/Capture d’écran 2019-04-08 à 16.48.56.png

 

Comptages des répertoires et fichiers par source

Lorsque tous les éléments ont été injectés dans le moteur d’indexation, on compare alors les éléments obtenus entre le comptage Windows et le comptage ELK afin de vérifier que les erreurs ne sont pas significatives.

 

M:\Organisationnel

Les comptages sont les suivants :

Répertoire principal Nb de répertoires Nb de fichiers Volume
Total comptage listing via le calcul de Windows 1 309 910 10 798 669 16,1 To
Total comptage index 1 305 950 10 171 949 17,1 To

 

N:\Commun

Les comptages sont les suivants :

Répertoire principal Nb de répertoires Nb de fichiers Volume
Total comptage listing via le calcul de Windows 581 770 3 402 133 3,45 To
Total comptage index 564 576 3 089 141 3,64 To

O:\Alfresco

Un lecteur réseau a été monté sur le serveur Alfresco afin de pouvoir lister les fichiers stockés à la racine et dans les sites. Dans notre étude de cas, du fait du faible stockage et du faible nombre des éléments stockés en dehors des sites, qui représentent à peine 10 Go et quelques milliers de fichiers, ils n’ont pas été importés et ont été ignorés dans l’analyse.

Répertoire principal Nb de répertoires Nb de fichiers Volume Remarques
Total comptage index 50 113 295 702 781 Go 115 sites

 

 

Suivez bluexml sur les réseaux sociaux

24Avr/18

Hot Reloading en Alfresco avec HotswapAgent

Pour développer en Java sur Alfresco, il faut absolument mettre en place une solution de hot reloading, car le temps de redémarrage du serveur de la plateforme est bien trop long pour pouvoir tester facilement les changements au code. Cela concerne aussi le développement de scripts serveur en JavaScript qui sont exécutés par le moteur Rhino : il n’est pas normal pour un dev JavaScript de devoir attendre quelques minutes avant de tester une petite modification du code.

Alfresco propose deux solutions : JRebel (payante) et HotswapAgent (open source). Pour l’instant j’ai choisi de ne pas investir dans JRebel et de bien tester son concurrent gratuit pour voir s’il suffit. Alfresco nous donne un tutoriel officiel pour l’utiliser, mais il manque quelque passage (notamment l’utilisation dans Eclipse qu’on ne trouve que pour JRebel), donc je vais refaire le tour pour arriver a un petit projet basé sur l’archétype Maven et le code démo qu’il contient.

La liste de courses

Nous allons utiliser un correctif pour la machine virtuelle Java (ne paniquez pas, il s’installe à côté, sans modifier la VM originale). Téléchargez donc la version pour Java 8 de DCEVM (version 8u152 à l’heure).

Bien évidemment, il faut avoir exactement la même version de Java, donc si vous utilisez une version différente, allez fouiller dans l’archive Oracle pour trouver la bonne.

Enfin, le vrai HotswapAgent. Inutile de télécharger la version la plus récente : pour Alfresco il faut utiliser la 1.0.

Voici un résumé des fichiers que j’ai utilisés dans Linux :

L’installation

Après avoir installé le JDK (pas besoin de l’installer en tant que administrateur), appliquez le correctif en utilisant cette commande :

$ java -jar DCEVM-8u152-installer.jar

En Windows on peut aussi taper deux fois sur DCEVM-8u152-installer.

Il s’agit d’un installateur qui vous donne une interface utilisateur assez simple :

Ajoutez la VM que vous venez d’installer et après tapez sur Install DCEVM as altjvm :

Quant au JAR du HotswapAgent, il faut tout simplement le mettre quelque part et se souvenir de son parcours.

Creation d’un projet

Créez un projet Maven comme indiqué dans la documentation Alfresco :

mvn archetype:generate -Dfilter=org.alfresco:

Choisissez l’archétype « All-in-One » et configurez les paramètres comme vous voulez.

Configuration d’Eclipse

Après avoir rajouté le JDK installé à la liste des JREs disponibles dans Eclipse (Window > Preferences > Java > Installed JREs), importez le projet (la documentation officielle explique comment faire et vous l’avez déjà fait plusieurs fois, donc je vous évite les détails).

Exécution du projet en mode hot reloading

Enfin, vous êtes prêts à créer une configuration pour exécuter le code. Dans les configurations de debug, créez-en une nouvelle de type Maven. Les paramètres à définir sont :

  • Base directory ${project_loc}
  • Goals clean install alfresco:run
  • Dans l’onglet JRE, sélectionnez le JRE avec le correctif DCEVM
  • VM arguments -Xms256m -Xmx2G -javaagent:/<parcours du HotswapAgent>/hotswap-agent-1.0.jar -XXaltjvm=dcevm

(Je vous conseille aussi de sélectionner Skip Tests, parce que la VM Hotswap est plus lente, donc c’est mieux de vérifier les tests séparément.)

Cette configuration peut être exécuté en mode DEBUG. Il faudra attendre un peu plus que d’habitude avant de pouvoir se connecter à Alfresco, mais il vaut le coup.

Cela donne quoi ?

Nous allons faire le test proposé par Alfresco dans le tutoriel JRebel : en se connectant à http://localhost:8080/alfresco/s/sample/helloworld, ou ici ;  le résultat sera Message: ‘Hello from JS!’ ‘HelloFromJava’

Sans arrêter le processus de debug, nous allons modifier ce message qui est généré par trois fichiers du projet platform-jar (on peut les ouvrir en tapant Ctrl+R et helloworld) : helloworld.get.js, helloworld.get.html.ftl et HelloWorldWebScript.java. Habituellement, un changement à chacun de ces fichiers entraine un redémarrage du projet.

Allons donc changer les messages :

  • dans helloworld.get.js remplacez model["fromJS"] = "Hello from JS!"; avec model["fromJS"] = "Bonjour de JS !";
  • dans helloworld.get.html.ftl remplacez Message: '${fromJS}' '${fromJava}' avec Messages : '${fromJS}' et '${fromJava}'
  • dans HelloWorldWebScript.java remplacez model.put("fromJava", "HelloFromJava"); avec model.put("fromJava", "Bonjour de Java");

À noter que chaque fois que vous tapez Ctrl+S, les changements sont pris en charge à l’instant et le log vous en donne confirmation. Un coup de F5 dans Firefox vous donne le nouveau message qui arrive des trois fichiers modifiés : pour l’instant rien à envier à JRebel.

Conclusion

Je trouve encore plus intéressante de pouvoir exécuter mes tests d’intégration en mode debug hot reloading, ce qui donne la possibilité de redémarrer à la volée une méthode qu’on vient de changer. Cela sera peut-être le sujet d’une autre article si cela vous intéresse.