Talend: Création du composant tWaitForDirectory

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

Talend préférences

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…)

Talend ajout JRE

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

Talend ajout composant custo

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…

Talend régénération de la palette

Le composant se trouve maintenant dans la palette utilisateur

Talend palette utilisateur onglet orchestration

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

Talend paramétrage composant tWaitForDirectory

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é:

talend scan fichier avec tWaitForDirectory

Créez ensuite un répertoire

talend détection création répertoire avec tWaitForDirectory

Le résultat s’affiche dans la console indiquant qu’un répertoire a été créé, ceci étant la grande nouveauté de ce composant.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Petit calcul pour valider votre commentaire! merci * Time limit is exhausted. Please reload CAPTCHA.