Cet article un peu particulier, est un tutoriel qui décrit l’utilisation et l’installation du composant Talend tWaitForDirectory, développé et testé par mes soins dans un environnement en version 5, ce composant s’inspire du composant tWaitForFile standard.
Introduction
Sans vouloir dénigrer le composant tWaitForFile standard, celui-ci a le gros désavantage de ne pas détecter la création / modification / mise à jour des répertoires d’un système de fichier (il ne travaille uniquement qu’avec les fichiers).
J’ai donc décidé suite à de nombreuses demandes d’utilisateurs de me retrousser les manches et de créer un composant plus efficace, il se base donc sur le package NIO2, et nécessite obligatoirement l’utilisation de la machine virtuelle Java 7.
L’avantage de cette librairie issu de la JSR203, est qu’elle s’est fortement modernisée, remplaçant les vieilles librairies I/O de java, mieux intégrée dans la gestion du système de fichier, elle permet par exemple de suivre des liens symboliques et de lever des exceptions en cas de problème, un autre avantage est d’être aussi moins gourmande en ressources.
Téléchargement
Téléchargement de la JRE7 (obligatoire)
Pour télécharger ce composant au format ZIP, cliquez sur ce lien, ce téléchargement est issu de l’exchange du site TalendForge.org qui référence tous les composants personnalisés.
English documentation here
Documentation en français hors ligne ici
Paramétrage de Talend
Une fois Talend lancé, il faut se rendre dans le menu Windows -> Preferences
Le menu préférences apparait, il faut ensuite se rendre dans Java -> Installed JREs pour ajouter la machine virtuelle java fraichement installée (bouton Add…)
Toujours dans les préférences, se rendre ensuite dans la rubrique Talend -> Components pour sélectionner le répertoire qui accueille les composants personnalisés
NB : La structure du répertoire dans cet exemple doit se présenter comme suit :
Racine (C:\)
->Users
->JS
->TalendCustoComponent
->tWaitForDirectory
tWaitForDirectory_begin.javajet
tWaitForDirectory_main.javajet
tWaitForDirectory_end.javajet
tWaitForDirectory_icon32.png
tWaitForDirectory_icon32_white.png
tWaitForDirectory_java.xml
tWaitForDirectory_messages.properties
tWaitForDirectory_messages_en.properties
tWaitForDirectory_messages_fr.properties
->tCustoComponent1
…
->tCustoComponent2
…
Pour faire apparaitre ce composant dans la rubrique « Orchestration » de la palette, utilisez les touches CTRL-SHIFT-F3, ce qui aura pour effet de régénérer manuellement la palette suite à cette modification.
Régénération en cours…
Le composant se trouve maintenant dans la palette utilisateur
Utilisation du composant
Pour tester, glissez le composant sur l’espace de travail et reliez-le au composant tLogRow.
Les paramètres du composant
Au nombre de sept, voici leur signification :
- Directory to scan: Le répertoire à surveiller, par défaut le répertoire d’installation de votre « workspace » en cours d’utilisation.
- Include subdirectories: Précise si le composant doit scruter les sous répertoire qui composent le répertoire à surveiller.
- Number of iterations: Nombre de boucle avant sortie du composant
- Creation detection: Détecte les créations (répertoire et/ou fichiers)
- Deletion detection: Détecte les suppressions (répertoire et/ou fichiers)
- Update detection: Détecte les mises à jour (répertoire et/ou fichiers)
- Then: Comportement lors de la première détection d’un mouvement sur votre répertoire (selon ce que vous avez choisi de surveiller).
ATTENTION : vous devez spécifier au moins un type de détection sinon une exception sera levée à l’exécution.
Copie d’écran des paramètres
Valeurs de retour
Ces valeurs sont définies dans la section schéma, en voici la liste et leur fonctionnement :
- CURRENT_ITERATION: Un compteur qui vous indique le numéro de séquence incrémenté à chaque détection
- ITEM_NAME: L’élément qui est à l’origine de la détection (Nom de fichier ou répertoire)
- EVENT: Événement qui se produit (création / suppression / mise à jour)
- PREVIOUS_DIR: Le niveau inférieur de l’élément créé, si un répertoire est créé dans celui qui est scruté.
- REGISTER: Si un répertoire est créé dans celui qui est scruté, le composant le signale ici
- MIMETYPE: Type MIME du fichier détecté (« Unknow » si répertoire ou fichier non reconnu)
- FULLPATH: Chemin complet du dernier élément créé
- ISDIRECTORY: Indique si l’élément détecté est un répertoire ou non (Y/N)
Lancez le job et créez un fichier dans le répertoire scanné:
Créez ensuite un répertoire
Le résultat s’affiche dans la console indiquant qu’un répertoire a été créé, ceci étant la grande nouveauté de ce composant.