Sunteți pe pagina 1din 266

Composants Mediation

Talend ESB
Guide de rfrence

5.6.2
Composants Mediation Talend ESB

Convient la version 5.6.2. Annule et remplace toute version antrieure de ce guide.

Date de publication : 12 mai 2015


Copyright 2011-2015 Talend SA. Tous droits rservs.

Copyleft
Cette documentation est mise disposition selon les termes du Contrat Public Creative Commons (CPCC).

Pour plus d'informations concernant votre utilisation de cette documentation en accord avec le Contrat CPCC,
consultez : http://creativecommons.org/licenses/by-nc-sa/2.0/

Mentions lgales
Talend et Talend ESB sont des marques dposes de Talend, Inc.

Apache CXF, CXF, Apache Karaf, Karaf, Apache Cellar, Cellar, Apache Camel, Camel, Apache Maven, Maven,
Apache Archiva, Archiva, Apache Syncope, Syncope, Apache ActiveMQ, ActiveMQ, Apache Log4j, Log4j,
Apache Felix, Felix, Apache ServiceMix, ServiceMix, Apache Ant, Ant, Apache Derby, Derby, Apache Tomcat,
Tomcat, Apache ZooKeeper, ZooKeeper, Apache Jackrabbit, Jackrabbit, Apache Santuario, Santuario, Apache
DS, DS, Apache Avro, Avro, Apache Abdera, Abdera, Apache Chemistry, Chemistry, Apache CouchDB,
CouchDB, Apache Kafka, Kafka, Apache Lucene, Lucene, Apache MINA, MINA, Apache Velocity, Velocity,
Apache FOP, FOP, Apache HBase, HBase, Apache Hadoop, Hadoop, Apache Shiro, Shiro, Apache Axiom,
Axiom, Apache Neethi, Neethi, Apache WSS4J, WSS4J sont des marques dposes de The Apache Foundation.
Eclipse Equinox est une marque dpose de The Eclipse Foundation, Inc. SoapUI est une marque dpose de
SmartBear Software. Hyperic est une marque dpose de VMware, Inc. Nagios est une marque dpose de Nagios
Enterprises, LLC.

Tous les autres noms de marques, de produits, les noms de socits, les marques de commerce et de service sont
la proprit de leurs dtenteurs respectifs.

Ce produit comprend les logiciels dvelopps par AOP Alliance (Java/J2EE AOP standards), ASM, AntlR, Apache
ActiveMQ, Apache Ant, Apache Avro, Apache Axiom, Apache Axis, Apache Axis 2, Apache Batik, Apache
CXF, Apache Camel, Apache Chemistry, Apache Common Http Client, Apache Common Http Core, Apache
Commons, Apache Commons Bcel, Apache Commons JxPath, Apache Commons Lang, Apache Derby Database
Engine and Embedded JDBC Driver, Apache Geronimo, Apache Hadoop, Apache Hive, Apache HttpClient,
Apache HttpComponents Client, Apache JAMES, Apache Log4j, Apache Lucene Core, Apache Neethi, Apache
POI, Apache Pig, Apache Qpid-Jms, Apache Tomcat, Apache Velocity, Apache WSS4J, Apache WebServices
Common Utilities, Apache Xml-RPC, Apache Zookeeper, Box Java SDK (V2), CSV Tools, DataStax Java Driver
for Apache Cassandra, Ehcache, Ezmorph, Ganymed SSH-2 for Java, Google APIs Client Library for Java, Google
Gson, Groovy, Guava: Google Core Libraries for Java, H2 Embedded Database and JDBC Driver, HsqlDB,
Ini4j, JClouds, JLine, JSON, JSR 305 : Annotations for Software Defect Detection in Java, JUnit, Jackson Java
JSON-processor, Java API for RESTful Services, Jaxb, Jaxen, Jettison, Jetty, Joda-Time, Json Simple, MetaStuff,
Mondrian, OpenSAML, Paraccel JDBC Driver, PostgreSQL JDBC Driver, Resty : A simple HTTP REST client
for Java, Rocoto, SL4J : Simple Logging Facade for Java, SQLite JDBC Driver, Simple API for CSS, SshJ, StAX
API, StAXON - JSON via StAX, Talend Camel Dependencies (Talend), The Castor Project, The Legion of the
Bouncy Castle, W3C, Woden, Woodstox : High-performance XML processor, XML Pull Parser (XPP), Xalan-
J, Xerces2, XmlBeans, XmlSchema Core, Xmlsec - Apache Santuario, Zip4J, atinject, dropbox-sdk-java : Java
library for the Dropbox Core API, google-guice. Fournis sous leur licence respective.
Scnario : Messaging direct et
Table des matires synchrone dans une mme JVM . . . . . . . . . 65
cFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Prface .................................................. v Proprits du cFile . . . . . . . . . . . . . . . . . . . . . . . 70
Informations gnrales . . . . . . . . . . . . . . . . . . . . . . . . . . . v Scnario : Lire des fichiers d'un
Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v rpertoire et les crire dans un autre . . . . . . 70
Public vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v cFtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Conventions typographiques . . . . . . . . . . . . . . v Proprits du cFtp . . . . . . . . . . . . . . . . . . . . . . . . 73
Remarques et Support . . . . . . . . . . . . . . . . . . . . . . . . . . . v Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Composants Context .............................. 1 cHttp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
cBeanRegister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Proprits du cHttp . . . . . . . . . . . . . . . . . . . . . . . 74
Proprits du cBeanRegister . . . . . . . . . . . . . . 2 Scnario 1 : Rcuprer le contenu
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 d'un fichier distant . . . . . . . . . . . . . . . . . . . . . . . 76
cConfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Scnario 2 : Utiliser un cHttp pour
Proprits du cConfig . . . . . . . . . . . . . . . . . . . . . 3 produire un service Web . . . . . . . . . . . . . . . . . 79
Scnario : Implmenter un jeu de cJMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
donnes depuis le Registry . . . . . . . . . . . . . . . . 3 Proprits du cJMS . . . . . . . . . . . . . . . . . . . . . . 82
cMQConnectionFactory . . . . . . . . . . . . . . . . . . . . . . . . . 7 Scnario 1 : Envoyer et recevoir un
Proprits du message d'une file JMS . . . . . . . . . . . . . . . . . . 82
cMQConnectionFactory . . . . . . . . . . . . . . . . . . . 7 Scnario 2 : Mettre en place une
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 transaction JMS locale . . . . . . . . . . . . . . . . . . . 86
Composants Exception ............................ 9 Scnario 3 : Envoyer et recevoir une
cErrorHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 livraison planifie de messages d'une
Proprits du cErrorHandler . . . . . . . . . . . . . 10 file JMS via Camel Quartz . . . . . . . . . . . . . . . 92
Scnario : Capturer l'exception cMail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
retourne durant un change client/ Proprits du cMail . . . . . . . . . . . . . . . . . . . . . . 99
serveur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Scnario : Utiliser un composant
cIntercept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 cMail pour envoyer et recevoir des e-
Proprits du cIntercept . . . . . . . . . . . . . . . . . . 14 mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Scnario : Intercepter plusieurs cMessagingEndpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
routes et les rediriger dans une seule Proprits du cMessagingEndpoint . . . . . 103
nouvelle route . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Composants Camel les plus utiliss . . . . . 103
cOnException . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Scnario 1 : Dplacer des fichiers
Proprits du cOnException . . . . . . . . . . . . . 19 d'un endpoint de message un autre . . . . 109
Scnario : Utiliser le composant Scnario 2 : Envoyer des fichiers
cOnException pour ignorer les vers un autre endpoint de message . . . . . . 110
exceptions et continuer le routage Scnario 3 : Utiliser un endpoint
des messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Xquery pour filtrer des messages . . . . . . . 112
cTry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 cMQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Proprits du cTry . . . . . . . . . . . . . . . . . . . . . . . 24 Proprits du cMQTT . . . . . . . . . . . . . . . . . . . 120
Scnario : Utiliser un cTry pour Scnario : Envoyer des messages
construire des blocs Try/Catch/ et recevoir des messages d'un broker
Finally afin de grer les exceptions . . . . . . 24 MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
cSEDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Composants Messaging ......................... 29
Proprits du cSEDA . . . . . . . . . . . . . . . . . . . 127
cAMQP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Scnario : Utiliser les composants
Proprits du cAMQP . . . . . . . . . . . . . . . . . . . . 30
cSEDA, cVM et cDirect pour
Scnario : Envoyer des messages
produire et consommer sparment
et recevoir des messages d'un broker
des messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
AMQP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
cTimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
cCXF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Proprits du cTimer . . . . . . . . . . . . . . . . . . . . 138
Proprits du cCXF . . . . . . . . . . . . . . . . . . . . . . 38
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 138
Scnario 1 : Fournir un service Web
cVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
via le cCXF depuis un fichier WSDL . . . . 42
Proprits du cVM . . . . . . . . . . . . . . . . . . . . . . 139
Scnario 2 : Fournir un service Web
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 140
via un cCXF partir d'une classe
Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Composants Miscellaneous .................. 141
Scnario 3 : Fournir un service Web cLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
partir d'une ressource de Route . . . . . . . . . 47 Proprits du cLog . . . . . . . . . . . . . . . . . . . . . . 142
cCXFRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 142
Proprits du cCXFRS . . . . . . . . . . . . . . . . . . . 52 cLoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Scnario : Fournir et consommer un Proprits du cLoop . . . . . . . . . . . . . . . . . . . . 143
service REST l'aide du cCXFRS . . . . . . . 54 Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 143
cDataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 cStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Proprits du cDataset . . . . . . . . . . . . . . . . . . . 60 Proprits du cStop . . . . . . . . . . . . . . . . . . . . . 144
Scnario : Utiliser le cDataset pour Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 144
recevoir des messages . . . . . . . . . . . . . . . . . . . . 60 Composants Processor ......................... 145
cDirect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 cBean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Proprits du cDirect . . . . . . . . . . . . . . . . . . . . . 64 Proprits du cBean . . . . . . . . . . . . . . . . . . . . . 146
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 146
cDirectVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 cDelayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Proprits du cDirectVM . . . . . . . . . . . . . . . . . 65 Proprits du cDelayer . . . . . . . . . . . . . . . . . . 147

Guide de rfrence des Composants Mediation de Talend ESB


Composants Mediation Talend ESB

Scnario : Utiliser le cDelayer pour Proprits du cThrottler . . . . . . . . . . . . . . . . . 224


retarder le routage de messages . . . . . . . . . 147 Scnario : Limiter le flux de
cExchangePattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Proprits du cExchangePattern . . . . . . . . 151 Visualiser du code et excuter la
Scnario : Activer le modle Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
d'change InOut pour obtenir des cWireTap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
rponses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Proprits du cWireTap . . . . . . . . . . . . . . . . . 228
cJavaDSLProcessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Scnario : Ecouter un message dans
Proprits du cJavaDSLProcessor . . . . . . 155 une Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 155 Composants Transformation ................ 233
cProcessor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 cContentEnricher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Proprits du cProcessor . . . . . . . . . . . . . . . . 156 Proprits du cContentEnricher . . . . . . . . . 234
Scnario associ . . . . . . . . . . . . . . . . . . . . . . . . 156 Scnario : Recevoir des messages
cTalendJob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 d'une liste d'URL . . . . . . . . . . . . . . . . . . . . . . . 234
Proprits du cTalendJob . . . . . . . . . . . . . . . 157 cConvertBodyTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Scnario : Utiliser un cTalendJob Proprits du cConvertBodyTo . . . . . . . . . 242
pour appeler un Job d'intgration de Scnario : Convertir le corps
donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 d'un fichier XML en
Composants Routing ........................... 165 org.w3c.dom.Document.class . . . . . . . . . . . 242
cAggregate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 cMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Proprits du cAggregate . . . . . . . . . . . . . . . 166 Proprits du cMap . . . . . . . . . . . . . . . . . . . . . 247
Scnario : Agrger trois messages en Scnario : Mapper des donnes avec
un . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 le cMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
cDynamicRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 cSetBody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Proprits du cDynamicRouter . . . . . . . . . 173 Proprits du cSetBody . . . . . . . . . . . . . . . . . 251
Scnario : Router des fichiers vers Scnario : Remplacer le contenu des
diffrents emplacements selon des messages par leurs extraits . . . . . . . . . . . . . . 251
conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 cSetHeader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
cIdempotentConsumer . . . . . . . . . . . . . . . . . . . . . . . . 178 Proprits du cSetHeader . . . . . . . . . . . . . . . 255
Proprits du cIdempotentConsumer . . . 178 Scnario : Diviser un message et
Scnario : Ddoublonner des renommer les sous-messages selon
messages pendant leur routage . . . . . . . . . . 179 les informations contenues . . . . . . . . . . . . . . 255
cLoadBalancer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Scnarios associs . . . . . . . . . . . . . . . . . . . . . . 260
Proprits du cLoadBalancer . . . . . . . . . . . 182
Scnario : Distribuer les messages
aux endpoints rcepteurs selon la
mthode Round Robin . . . . . . . . . . . . . . . . . . 183
cMessageFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Proprits du cMessageFilter . . . . . . . . . . . 187
Scnario : Filtrer les messages selon
un critre dfini . . . . . . . . . . . . . . . . . . . . . . . . . 187
cMessageRouter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Proprits du cMessageRouter . . . . . . . . . . 191
Scnario : Router des messages selon
un critre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
cMulticast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Proprits du cMulticast . . . . . . . . . . . . . . . . 196
Scnario : Router un message vers de
multiples endpoints . . . . . . . . . . . . . . . . . . . . . 196
cPipesAndFilters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Proprits du cPipesAndFilters . . . . . . . . . 202
Scnario : Utiliser un
cPipesAndFilters pour traiter une
tche en squence . . . . . . . . . . . . . . . . . . . . . . . 202
cRecipientList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Proprits du cRecipientList . . . . . . . . . . . . 206
Scnario : Router un message vers de
nombreux destinataires . . . . . . . . . . . . . . . . . 207
cRoutingSlip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Proprits du cRoutingSlip . . . . . . . . . . . . . 211
Scnario 1 : Router un message
conscutivement une srie
d'endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Scnario 2 : Router chaque message
selon des conditions vers une srie
d'endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
cSplitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Proprits du cSplitter . . . . . . . . . . . . . . . . . . 218
Scnario : Utiliser le cSplitter pour
diviser un message et agrger les
rponses des sous-messages . . . . . . . . . . . . 219
cThrottler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

iv Guide de rfrence des Composants Mediation de Talend ESB


Prface

Informations gnrales

Objectif
Ce Guide de rfrence dtaille les principaux composants Camel accessibles dans la perspective
Mediation du Studio Talend.

Les informations contenues dans ce document s'appliquent la version 5.6.2 du Studio Talend.

Public vis
Ce guide s'adresse aux utilisateurs et aux administrateurs du Studio Talend.
Dans ce document, l'interface prsente par le biais des captures d'cran peut tre lgrement diffrente de
la vtre.

Conventions typographiques
Ce guide utilise les conventions typographiques suivantes :

texte en gras : boutons et champs d'une fentre ou d'une bote de dialogue, touches du clavier,
menus et options des menus ;

texte en [gras] : titre des fentres, assistants et botes de dialogue ;

texte en courier : paramtres systme renseigns par l'utilisateur ;

texte en italics : nom des fichiers, schmas, colonnes, lignes ou variables dont il est question dans
les exemples utiliss, ainsi que le nom des champs des vues Basic settings et Advanced settings
dont il est fait mention dans le tableau des proprits de chaque composant.


L'icne introduit un paragraphe apportant une information supplmentaire sur un point
important. Elle introduit galement les commentaires relatifs un tableau ou une image.


L'icne introduit un message apportant une information relative aux modalits d'excution, ou
des recommandations particulires. Elle est galement utilise pour attirer l'attention de l'utilisateur
sur certaines informations ou situations particulirement importantes.

Remarques et Support
Votre opinion nous intresse, n'hsitez pas nous faire part de vos remarques, suggestions, requtes
concernant la documentation ou le produit, et obtenez le support de notre quipe Talend, sur le Forum
Talend (en anglais) disponible l'adresse :

Guide de rfrence des Composants Mediation de Talend ESB


Remarques et Support

http://talendforge.org/forum

vi Guide de rfrence des Composants Mediation de Talend ESB


Composants Context
Ce chapitre passe en revue les principaux composants prsents dans la famille Context de la Palette, dans la
perspective Mediation du Studio Talend.

La famille Context regroupe les composants dfinissant les contextes que vous souhaitez utiliser dans vos Routes.

Guide de rfrence des Composants Mediation de Talend ESB


cBeanRegister

cBeanRegister

Proprits du cBeanRegister
Famille de composant Context
Fonction Le composant cBeanRegister enregistre en bean Java dans le registre pouvant tre appel l'aide
de l'ID du bean dans les changes de messages.
Objectif Le cBeanRegister vous permet d'enregistrer un bean Java dans le registre, utiliser dans les
changes de messages.
Basic settings Id Saisissez une chane de caractres utiliser pour rechercher le bean
Java dans le registre.
Simple Slectionnez cette option pour appeler une classe de bean stocke
dans le nud Code du Repository.
Customized Slectionnez cette option pour dfinir le bean Java en saisissant du
code dans le champ Code.
Class Name Ce champ apparat lorsque l'option Simple est slectionne.

Saisissez le nom de la classe du bean stocke dans le nud Code


du Repository.

Pour plus d'informations concernant la cration et l'utilisation de


beans Java, consultez le Guide utilisateur du Studio Talend.
Specify Arguments Cette case apparat lorsque l'option Simple est slectionne.
Cochez cette case afin de paramtrer les arguments facultatifs dans
la table correspondante. Cliquez sur le bouton [+] pour ajouter des
arguments dans la table.
Imports Cette case apparat lorsque l'option Customized est slectionne.

Saisissez le code Java permettant d'importer, si ncessaire, des


bibliothques externes utiliser dans le champ Code.
Code Cette case apparat lorsque l'option Customized est slectionne.

Saisissez le code du bean dans ce champ.


Utilisation Le composant cBeanRegister ne peut tre ajout directement dans une Route.

Scnario associ
Pour un scnario associ, consultez :

cConvertBodyTo: Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class.

2 Guide de rfrence des Composants Mediation de Talend ESB


cConfig

cConfig

Proprits du cConfig
Famille de composant Context
Fonction Le composant cConfig permet de manipuler le contexte Camel (CamelContext), la seule rgle
de routage dans une Route.
Objectif Le cConfig permet de configurer le contexte Camel l'aide de code Java.
Basic settings Imports Saisissez le code Java qui vous aident importer, si ncessaire, les
bibliothques utilises dans le champ Code.
Code Saisissez du code pour manipuler le contexte Camel.
Dependencies Slectionnez la ou les bibliothque(s) requises par le
CamelContext ou le Type Converter Registry dans la liste.
Utilisation Le cConfig ne peut tre directement ajout dans une Route.

Scnario : Implmenter un jeu de donnes depuis le


Registry
Dans ce scnario, un jeu de donnes est ajout dans le Registry et implment par un composant
cMessagingEndpoint.

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Context et slectionnez le composant cConfig, puis dposez-le dans
l'espace de modlisation graphique.

2. Dveloppez le dossier Messaging, slectionnez le composant cMessagingEndpoint et dposez-le dans


l'espace de modlisation graphique.

3. Dveloppez le dossier Processor, slectionnez le cProcessor et dposez-le dans l'espace de modlisation


graphique.

4. Cliquez-droit sur le composant d'entre cMessagingEndpoint, slectionnez Row > Route dans le menu
contextuel et cliquez sur le composant cProcessor.

Guide de rfrence des Composants Mediation de Talend ESB 3


Scnario : Implmenter un jeu de donnes depuis le Registry

5. Nommez les composants comme vous le souhaitez, afin de mieux identifier leur fonctionnalit.

Configurer les composants


1. Double-cliquez sur le cConfig nomm Create_dataset pour afficher sa vue Basic settings dans l'onglet
Component et configurer ses paramtres.

2. Dans le champ Code, saisissez du code pour enregistrer l'instance du jeu de donnes foo dans le Registry,
comme ci-dessous.

org.apache.camel.impl.SimpleRegistry registry = new


org.apache.camel.impl.SimpleRegistry();
registry.put("foo", new
org.apache.camel.component.dataset.SimpleDataSet());
camelContext.setRegistry(registry);

3. Double-cliquez sur le composant d'entre cMessagingEndpoint nomm Read_dataset pour afficher sa vue
Basic settings dans l'onglet Component.

4. Dans le champ URI, saisissez dataset:foo entre guillemets.

5. Double-cliquez sur le composant cProcessor nomm Monitor pour afficher sa vue Basic settings dans
l'onglet Component.

4 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Implmenter un jeu de donnes depuis le Registry

6. Dans le champ Code, personnalisez le code comme suit, afin que la console de la vue Run affiche le contenu
du message :

System.out.println("Message content: "+


exchange.getIn().toString());

7. Appuyez sur les touches Ctrl+S pour sauvegarder votre route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, une route est cre partir de (from) l'endpoint identifi par Read_dataset et
cProcessor_1 rcupre le contenu du message et l'affiche dans la console.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre route.
Vous pouvez galement appuyer sur la touche F6 pour l'excuter.

Rsultat : Le contenu du message est affich dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 5


Scnario : Implmenter un jeu de donnes depuis le Registry

6 Guide de rfrence des Composants Mediation de Talend ESB


cMQConnectionFactory

cMQConnectionFactory

Proprits du cMQConnectionFactory
Famille de composant Context
Fonction Le composant cMQConnectionFactory rassemble diffrents paramtres de configuration de connexion
afin de se connecter un serveur MQ. Ce composant remplace le cJMSConnectionFactory et fournit
quelques amliorations.
Objectif Le cMQConnectionFactory est utilis pour crer une connexion un serveur MQ pouvant tre appele
par diffrents composants cJMS, cAMQP ou cMQTT dans une Route.
MQ Server Slectionnez un serveur MQ entre ActiveMQ, WebSphere MQ,
AMQP 1.0, MQTT et Customized.
Use Transaction Cochez cette case afin d'activer les transactions locales dans la Route
en cours d'utilisation.
(pour ActiveMQ, WebSphere
MQ et Customized uniquement)
Broker URI Saisissez l'URI du broker de message. Pour une gestion des messages
intra-Route, vous pouvez simplement utiliser l'URI par dfaut vm://
(pour ActiveMQ uniquement) localhost?broker.persistent=false pour Active MQ.
HTTP Transport Cochez cette case pour activer la connexion HTTP au broker
ActiveMQ.
Use PooledConnectionFactory Cochez cette case afin d'utiliser PooledConnectionFactory.

(pour ActiveMQ uniquement)


Max Connections Spcifiez le nombre maximal de connexions de
PooledConnectionFactory. Ce champ est disponible uniquement
(pour ActiveMQ uniquement) lorsque la case Use PooledConnectionFactory est coche.
Max Active Spcifiez le nombre maximal de sessions par connexion.
Ce champ est disponible uniquement lorsque la case Use
(pour ActiveMQ uniquement) PooledConnectionFactory est coche.
Idle Timeout (in ms) Spcifiez le dlai maximal d'attente avant que la connexion ne soit
suspendue. Ce champ est disponible uniquement lorsque la case Use
(pour ActiveMQ uniquement) PooledConnectionFactory est coche.
Expiry Timeout (in ms) Spcifiez le dlai avant suspension de la connexion depuis qu'elle a
t tablie. La valeur par dfaut est 6000. Ce champ est disponible
(pour ActiveMQ uniquement) uniquement lorsque la case Use PooledConnectionFactory est
coche.
Host Name Saisissez le nom ou l'adresse IP de l'hte sur lequel le serveur IBM
WebSphere MQ ou le broker MQTT est lanc. Pour WebSphere
(pour WebSphere MQ, AMQP MQ, et AMQP 1.0, l'hte par dfaut est localhost. Pour MQTT,
1.0 et MQTT uniquement) l'hte par dfaut est 127.0.0.1
Port Saisissez le numro du port du serveur MQ, 1414 par dfaut. Pour
WebSphere MQ, le port par dfaut est 1414. Pour AMQP 1.0, le
(pour WebSphere MQ, AMQP port par dfaut est 5672. Pour MQTT, le port par dfaut est 1883
1.0 et MQTT uniquement)
Transport Type Slectionnez un type de transport de messages entre le serveur
IBM WebSphere MQ et le broker WebSphere MQ parmi Bindings,
(pour WebSphere MQ Bindings then Client, et Client.
uniquement)
Queue Manager Saisissez le nom du gestionnaire de file ou spcifiez le nom du
serveur IBM WebSphere MQ pour trouver un gestionnaire de file.
(pour WebSphere MQ
uniquement)

Guide de rfrence des Composants Mediation de Talend ESB 7


Scnario associ

Authentication Cochez cette case et renseignez l'identifiant ainsi que le mot de passe,
afin que le serveur MQ valide les droits d'accs. Pour saisir le mot
(pour Active MQ, WebSphere de passe, cliquez sur le bouton [...] ct du champ Password,
MQ et AMQP 1.0 uniquement) puis, dans la bote de dialogue qui s'ouvre, saisissez le mot de passe
entre guillemets doubles, puis cliquez sur OK afin de sauvegarder
les paramtres.
Dependencies Spcifiez les bibliothques supplmentaires requises par le broker
MQ.
(pour WebSphere MQ et
Customized uniquement)
Use SSL Cochez cette case pour vous connecter au serveur MQ via
un protocole SSL. Pour MQTT, spcifiez le fichier TrustStore
(pour AMQP 1.0 et MQTT contenant la liste des certificats accepts par le serveur MQ et
uniquement) saisissez le mot de passe utilis afin de vrifier l'intgrit des donnes
du TrustStore.
Connect Attempts Saisissez le nombre maximal de tentatives pour tablir une
connexion initiale. La valeur par dfaut pour un nombre non limit
(pour MQTT uniquement) de tentatives est -1.
Reconnect Attempts Saisissez le nombre maximal de tentatives pour r-tablir une
connexion aprs un chec. La valeur par dfaut pour un nombre non
(pour MQTT uniquement) limit de tentatives est -1.
Reconnect Delay Saisissez, en millisecondes, le dlai entre deux tentatives pour r-
tablir une connexion initiale ou choue. La valeur par dfaut est
(pour MQTT uniquement) 10.
Quality of Service Slectionnez la qualit de service MQTT utiliser pour les changes
de messages. Vous avez le choix entre AtMostOnce, AtLeastOnce
(pour MQTT uniquement) ou ExactlyOnce.
Connect Wait In Seconds Saisissez en secondes le temps que va attendre le composant qu'une
connexion soit tablie au broker MQTT, 10 par dfaut.
(pour MQTT uniquement)
Disconnect Wait In Seconds Saisissez, en secondes, le temps que va attendre le composant une
dconnexion valide du broker MQTT, 5 par dfaut.
(pour MQTT uniquement)
Send Wait In Seconds Saisissez, en secondes, le temps maximal que va attendre le
composant de recevoir un accus de rception du broker MQTT
(pour MQTT uniquement) concernant un message public, avant de retourner une exception. La
valeur par dfaut est 5.
Codes Saisissez un morceau de code pour spcifier la ConnectionFactory
MQ utiliserpour la gestion des messages.
(pour Customized uniquement)
Utilisation Le composant cMQConnectionFactory ne peut tre ajout directement dans une Route.
Limitation Ce composant requiert l'installation des fichiers .jar lis. Pour plus d'informations sur l'installation
de ces fichiers .jar manquants, consultez la section dcrivant comment configurer le studio du Guide
d'installation et de migration Talend.

Scnario associ
Pour un scnario associ, consultez Scnario 1 : Envoyer et recevoir un message d'une file JMS.

8 Guide de rfrence des Composants Mediation de Talend ESB


Composants Exception
Ce chapitre passe en revue les principaux composants de la famille Exception dans la Palette de la perspective
Mediation du Studio Talend.

La famille Exception regroupe les composants ddis la gestion des exceptions dans les Routes.

Guide de rfrence des Composants Mediation de Talend ESB


cErrorHandler

cErrorHandler

Proprits du cErrorHandler
Famille de composant Exception
Fonction Le composant cErrorHandler fournit de multiples stratgies pour grer les erreurs survenues
dans une Route.
Objectif Le cErrorHandler est utilis pour traiter ls erreurs lors de routage de messages.
Basic settings Default Handler Ce gestionnaire d'erreur ne supporte pas la file dead letter (file des
messages non reus) et retourne les exceptions l'expditeur.
Set Maximum Redeliveries : cochez cette case pour configurer
le nombre de tentatives de livraison, dans le champ Maximum
Redeliveries (int).
Set Redelivery Delay : cochez cette case pour paramtrer le
temps avant la premire tentative de nouvelle livraison (en
millisecondes) dans le champ Redelivery Delay (long).
Set Retry Attempted Log Level : cochez cette case pour
slectionner le niveau de log des messages dans la liste Level
lorsque les tentatives se produisent.
Asynchronized Delayed Redelivery : cochez cette case pour
permettre une nouvelle livraison asynchrone diffre.
More Configurations by Code : cochez cette case afin de saisir
les code, dans le champ Code pour une configuration avance.
Dead Letter Ce gestionnaire supporte les tentatives de livraison d'change de
messages un certain nombre de fois avant de l'envoyer dans un
endpoint de messages non reus.
Dead Letter Uri : cochez cette case pour configurer l'endpoint de
la file de messages non reus.

Configurez les autres paramtres de la mme manire que pour le


Default Handler.
Logging Handler Ce gestionnaire capture les exceptions.
Set Logger Name : cochez cette case afin de nommer le logger,
dans le champ Name.
Set Log Level : cochez cette case afin de slectionner le niveau
de log, dans la liste Level.
Utilisation Le composant cErrorHandler peut tre utilis sparment ou en tant que composant
intermdiaire ou de fin dans une Route. S'il est utilis sparment, il permet de grer les erreurs
dans toutes les sous-routes. S'il est utilis au milieu ou la fin d'une sous-route, il gre les
exceptions survenant dans les composants de cette sous-route, avant ou aprs le cErrorHandler.

Scnario : Capturer l'exception retourne durant un


change client/serveur
Dans ce scnario, un serveur Jetty est dmarr avant qu'un navigateur client demande d'accder au serveur. Une
exception est retourne du ct serveur et capture par le cErrorHandler.

10 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Capturer l'exception retourne durant un change client/serveur

Dposer et relier les composants


1. Dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un
cMessagingEndpoint, un cErrorHandler et un cProcessor, respectivement nomms Jetty_Server,
Error_Handler et Throw_Exception.

2. Reliez le cMessagingEndpoint au cProcessor l'aide d'un lien Row > Route.

Configurer les composants


1. Double-cliquez sur le cErrorHandler pour ouvrir sa vue Basic settings.

2. Slectionnez l'option Logging Handler afin de capturer les exceptions retournes.

3. Double-cliquez sur le composant cMessagingEndpoint afin d'ouvrir sa vue Basic settings.

4. Dans le champ Uri, saisissez jetty:http://localhost:8889/service pour spcifier le serveur Jetty.

5. Cliquez sur l'onglet Advanced settings pour configurer les proprits avances du composant.

Guide de rfrence des Composants Mediation de Talend ESB 11


Scnario : Capturer l'exception retourne durant un change client/serveur

6. Dans la table Dependencies, cliquez sur le bouton [+] afin d'ajouter une ligne et slectionnez jetty dans
la liste Camel component.

7. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

8. Dans le champ Code, saisissez throw new Exception("server side error") afin de retourner une
exception.

9. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

12 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Capturer l'exception retourne durant un change client/serveur

Comme affich ci-dessus, la Route commence partir de (from) l'endpoint Jetty_Server et retourne
l'exception server side error via le cProcessor_1.

2. Appuyez sur F6 pour excuter la Route.

Le serveur Jetty a dmarrr.

3. Lancez un navigateur Web et saisissez http://localhost:8889/service (L'URI du serveur Jetty


configure prcdemment) dans la barre d'adresse afin d'accder au serveur.

Comme affich ci-dessus, la requte a chou cause d'une erreur du serveur.

4. Retournez dans le Studio et vrifiez les rsultats dans l'onglet Run.

Comme affich ci-dessus, le cErrorHandler a captur l'exception au niveau ERROR.

Guide de rfrence des Composants Mediation de Talend ESB 13


cIntercept

cIntercept

Proprits du cIntercept
Famille de composant Exception
Fonction Le composant cIntercept intercepte les messages dans toutes les sous-routes d'une Route avant leur
production et les dirige dans une seule nouvelle sous-route sans modifier les valeurs originales.
Lorsque le dtour est effectu, le routage des messages vers leurs endpoints cible originaux peut
continuer.
Objectif Le cIntercept intercepte chaque message d'une sous-route et le redirige vers une autre sous-route sans
modifier la sous-route originale. Cela peut tre utile lors de tests pour simuler la gestion d'erreurs.
Utilisation Le cIntercept est gnralement utilis comme composant de dbut dans une sous-route.
Connections Row / Route Slectionnez le lien Route pour intercepter tous les messages de toutes les sous-
routes coutes par le cIntercept.
Trigger / When Slectionnez le lien When pour filtrer les messages intercepter et cliquez sur
l'onglet Component.

Dans la liste Type, slectionnez le type de langage utilis pour dclarer votre
condition.

Dans le champ Condition, saisissez la condition utilise pour filtrer les


messages.

Tous les messages ne correspondant pas cette condition sont rejets, par dfaut,
ou peuvent tre rcuprs via un lien Otherwise vers un canal diffrent.
Limitation Pour ne pas modifier les sous-routes originales, le cIntercept peut tre utilis uniquement dans une
sous-route spare.

Scnario : Intercepter plusieurs routes et les rediriger


dans une seule nouvelle route
Dans ce scnario, les messages de deux sous-routes sont intercepts et routs dans une nouvelle sous-route,
termine avant que les sous-routes originales ne continuent.

14 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle route

Dposer et relier les composants


Ce scnario requiert cinq composants cFile, un cIntercept, un cProcessor et un cStop.

1. De la famille Messaging dans la Palette, dposez quatre composants cFile dans l'espace de modlisation
graphique.

2. Reliez les deux paires de cFile l'aide de liens Row > Route. Les messages de ces deux sous-routes seront
intercepts.

3. Du dossier Exception, dposez un cIntercept dans l'espace de modlisation graphique.

4. Du dossier Processor, dposez un composant cProcessor dans l'espace de modlisation graphique.

5. Du dossier Messaging, dposez un cinquime cFile dans l'espace de modlisation graphique.

6. Du dossier Miscellaneous, dposez un composant cStop dans l'espace de modlisation graphique.

7. Reliez ces quatre composants les uns aux autres l'aide de liens Row > Route. Dans cette sous-route, les
messages intercepts sont dirigs vers un nouvel endpoint avant que la Route entire soit acheve.

8. Renommez les composants afin de mieux identifier leur rle dans la Route.

Configurer les composants et les connexions


Dans ce scnario, le cIntercept intercepte tous les messages des sous-routes ds que les messages sont envoys et
qu'ils n'ont pas de proprit configurer. Le composant cStop arrte la sous-route dans laquelle le message a t
rejet avant la fin du traitement et n'ayant pas de proprit configurer. Vous devez donc configurer uniquement
les messaging endpoints et les composants de monitoring.

1. Double-cliquez sur le cFile nomm Sender_1 pour afficher sa vue Basic settings dans l'onglet Component.

2. Dans le champ Path, spcifiez le chemin d'accs la premire source dont vous envoyez vos messages et
laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le cFile nomm Receiver_1 pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 15


Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle route

4. Dans le champ Path, spcifiez le chemin d'accs la premire destination laquelle vous envoyez des
messages et laissez les autres paramtres tels qu'ils sont.

5. De la mme faon, configurez les composants cFile nomms Sender_2 et Receiver_2 dans la seconde sous-
route.

6. Double-cliquez sur le composant cProcessor nomm Monitor pour afficher sa vue Basic settings et
personnalisez le code dans la zone Code pour afficher le nom des fichiers des messages intercepts, dans
la console :

System.out.println("Message intercepted: "+


exchange.getIn().getHeader("CamelFileName"));

7. Double-cliquez sur le composant cFile nomm Receiver_3 pour afficher sa vue Basic settings.

8. Dans le champ Path, spcifiez le chemin d'accs au fichier de destination pour les messages intercepts et
laissez les autres paramtres tels qu'ils sont.

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

16 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle route

Comme affich dans le morceau de code, le Interceptor intercepte tous les messages de la Route. Les messages
intercepts sont dirigs vers (.to) l'endpoint Receiver_3 et le cStop_1 termine le routage du message avant
que les messages soient routs de l'(from)endpoint Sender_1 vers (.to) l'endpoint Receiver_1 et de l'(from)
endpoint Sender_2 vers l'(.to) endpoint Receiver_2.

2. Cliquez sur la vue Run et cliquez sur le bouton Run pour lancer l'excution de votre Route. Vous pouvez
galement appuyer sur F6 pour l'excuter.

Rsultat : Les fichiers sont envoys des endpoints, capturs par le composant cIntercept, monitors par
le cProcessor et envoys vers un nouvel endpoint. Les sous-routes originales sont termines avant que les
fichiers atteignent leur endpoint cible d'origine.

Guide de rfrence des Composants Mediation de Talend ESB 17


Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle route

18 Guide de rfrence des Composants Mediation de Talend ESB


cOnException

cOnException

Proprits du cOnException
Famille de composant Exception
Fonction Le composant cOnException capture les exceptions dfinies afin de dclencher les actions
souhaites sur les exceptions et le routage de message.
Objectif Le cOnException vous permet de spcifier la gestion d'erreurs que vous souhaitez effectuer,
selon le type d'exception.
Basic settings Exceptions Cliquez sur le bouton [+] pour ajouter autant de lignes que
ncessaire dans la table pour dfinir les exceptions capturer.
Set a redelivering tries Cochez cette case pour saisir le nombre maximal de tentatives de
count livraison dans le champ Maximum redelivering tries.
Non blocking asynchronous Cochez cette case pour activer les tentatives de livraison
behavior asynchrones reportes.

Pour plus d'informations, consultez http://camel.apache.org/


exception-clause.html (en anglais).
Exception behavior None : slectionnez cette option pour n'effectuer aucune action sur
la route originale.

Handle the exceptions : slectionnez cette option pour grer les


exceptions et rompre la boucle de traitement en cours afin de grer
l'exception sparment.

Ignore the exceptions : slectionnez cette option pour ignorer les


exceptions et continuer le routage de la route originale.
Route the original input Cochez cette case pour router le message original au lieu du
body instead of the current message courant, qui peut tre chang durant le routage.
body
Utilisation Le cOnException est utilis comme un composant standalone dans une Route.

Scnario : Utiliser le composant cOnException pour


ignorer les exceptions et continuer le routage des
messages
Dans ce scnario, un composant cOnException est utilis pour ignorer une exception IO retourne par un bean
Java afin que le message soit rout avec succs vers sa destination, malgr l'exception.

Guide de rfrence des Composants Mediation de Talend ESB 19


Scnario : Utiliser le composant cOnException pour ignorer les exceptions et continuer le routage des messages

Dposer et relier les composants


1. Glissez-dposez ces composants de la Palette dans l'espace de modlisation graphique : un cOnException,
un cFile, un cBeanet un cProcessor.

2. Reliez le cFile au cBean l'aide d'un lien Row > Route.

3. Reliez le cBean au cProcessor l'aide d'un lien Row > Route.

4. Renommez les composants comme vous le souhaitez pour mieux identifier leur rle dans la Route.

Configurer les composants


1. Double-cliquez sur le composant cOnException nomm Ignore_exception pour ouvrir sa vue Basic settings.

2. Cliquez sur le bouton [+] pour ajouter une ligne dans la table Exceptions et configurer l'exception capturer.
Dans cet exemple, saisissez java.io.IOException pour grer les exceptions IO.

Dans la zone Exception behavior, slectionnez l'option Ignore the exceptions pour ignorer les exceptions
et continuer le routage du message. Laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le composant cFile nomm Source, pour ouvrir sa vue Basic settings.

20 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le composant cOnException pour ignorer les exceptions et continuer le routage des messages

4. Dans le champ Path, saisissez le chemin d'accs la source du message et laissez les autres paramtres tels
qu'ils sont.

5. Double-cliquez sur le composant cBean nomm Throw_exception pour ouvrir sa vue Basic settings.

6. Slectionnez New Instance et, dans le champ Bean class, saisissez le nom du bean devant retourner une
exception IO, beans.throwIOException.class dans ce scnario.

Remarquez que ce bean a dj t dfini dans le nud Code du Repository. Il se prsente comme suit :

package beans;

import java.io.IOException;

import org.apache.camel.Exchange;

public class throwIOException {

/**

* @throws IOException
*/
public static void helloExample(String message, Exchange exchange) throws
IOException {
throw new IOException("An IOException has been caught");
}
}

Pour plus d'informations concernant la cration et l'utilisation des Beans Java, consultez le Guide utilisateur
du Studio Talend.

7. Double-cliquez sur le composant cProcessor nomm Monitor pouur ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 21


Scnario : Utiliser le composant cOnException pour ignorer les exceptions et continuer le routage des messages

8. Dans la zone Code, personnalisez le code pour afficher le nom du fichier du message consomm dans la
console de la vue Run :

System.out.println("Message consumed: "+


exchange.getIn().getHeader("CamelFileName"));

9. Appuyez sur Ctrl+S pour sauvegardez votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich ci-dessus, Ignore_exception gre toute exception IO retourne par


.bean(beans.throwIOException.class) invoqu par le cBean_1, afin que les messages de l'(from)
endpoint Source puissent tre routs avec succs (continued(true)) malgr l'exception.

2. Appuyez sur F6 pour excuter la Route.

22 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le composant cOnException pour ignorer les exceptions et continuer le routage des messages

La route est excute avec succs et les fichiers de la source sont bien routs vers leur destination.

3. Modifiez l'option de gestion des exception dans le composant cOnException ou dsactivez le composant et
excutez la Route nouveau.

L'exception retourne par le bean Java empche les messages d'tre correctement routs.

Guide de rfrence des Composants Mediation de Talend ESB 23


cTry

cTry

Proprits du cTry
Famille de composant Exception
Fonction Le composant cTry offre l'quivalent Java de la gestion d'exceptions en construisant des blocs
Try/Catch/Finally. Cela permet d'isoler la partie de la Route susceptible de gnrer une erreur,
de capturer les erreurs et d'excuter les dernires instructions sans tenir compte des erreurs.
Objectif Le cTry est conu pour construire des blocs Java Try/Catch/Finally pour grer les exceptions.
Utilisation Le cTry est gnralement comme composant intermdiaire dans une Route.
Connections Try Slectionnez ce lien pour isoler la partie de votre Route pouvant gnrer une
ou des exception(s).

Quand le lien Try est suivi par de multiples composants, l'erreur de


compilation suivante peut apparatre : "The method doCatch()
is undefined for the type ExpressionNode". Si tel est le
cas, utilisez un composant cJavaDSLProcessor pour y mettre fin en
saisissant le code .endDoTry().
Catch Slectionnez ce lien pour capturer l'exception ou les exceptions.

Dans le champ Exceptions, saisissez l'exception capturer.

Ce lien peut tre utilis uniquement lorsqu'un lien Try est utilis pour
isoler une partie d'une Route pouvant gnrer une ou des exception(s).
Finally Slectionnez ce lien pour excuter les instructions finales sans tenir compte des
exceptions pouvant surgir dans le bloc Try et/ou dans le bloc Catch.

Ce lien peut tre utilis uniquement lorsqu'un lien Try est utilis pour
isoler une partie d'une Route pouvant gnrer une ou des erreur(s).
Route Slectionnez ce lien pour router tous les messages de l'metteur vers l'endpoint
suivant.

Scnario : Utiliser un cTry pour construire des blocs


Try/Catch/Finally afin de grer les exceptions
Dans ce scnario, le contenu de chaque fichier envoy depuis l'metteur du message vers le rcepteur est vrifi
et, si un fichier ne rpond pas aux conditions de contenu, une exception est retourne et les informations
correspondantes sont affiches dans la console.

24 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cTry pour construire des blocs Try/Catch/Finally afin de grer les exceptions

Dposer et relier les composants


1. Du dossier Messaging de la Palette, dposez deux composants cFile dans l'espace de modlisation graphique,
un comme metteur de messages et un comme rcepteur de messages.

2. Du dossier Exception, dposez un composant cTry dans l'espace de modlisation graphique pour construire
des blocs Try, Catch et Finally.

3. Du dossier Processor, dposez deux cProcessor dans l'espace de modlisation graphique.

4. Reliez le cFile metteur de messages au composant cTry l'aide d'un lien Row > Route.

5. Reliez le cTry l'un des cProcessor l'aide d'un lien Row > Try. Ce composant cProcessor va retourner
une exception si un fichier provenant de cette connexion n'a pas le contenu requis.

6. Reliez le composant cTry l'autre composant cProcessor l'aide d'un lien Row > Catch pour retourner
l'exception. Ce cProcessor va afficher les informations relatives l'exception ainsi que le nom de fichier
n'ayant pas le contenu requis.

7. Reliez le cTry au composant cFile rcepteur, l'aide d'un lien Row > Finally.

8. Renommez les composants selon leur rle dans la Route.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile nomm Sender pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 25


Scnario : Utiliser un cTry pour construire des blocs Try/Catch/Finally afin de grer les exceptions

2. Dans le champ Path, saisissez le chemin d'accs au dossier contenant les fichiers source ou parcourez votre
systme jusqu' ce dossier.

3. Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers source. Laissez les autres paramtres
tels qu'ils sont.

4. Rptez ces tapes pour dfinir le chemin d'accs au fichier de sortie ainsi que le type d'encodage dans la vue
Basic settings de l'autre composant cFile nomm Receiver.

5. Double-cliquez sur le cProcessor nomm Throw_exception pour ouvrir sa vue Basic settings et personnaliser
le code dans la zone Code afin de retourner une exception et afficher les informations correspondantes si un
fichier provenant de la connexion try ne rpond pas aux conditions de contenu, comme suit :

String body = exchange.getIn().getBody(String.class);


System.out.println("\nTrying: "+body);
Exception e = new Exception("Only 'Talend Integration Solutions' is acceptable.
Please check the file:");
if(!"Talend Integration Solutions".equals(body)){
throw e;
}else{
System.out.println("File is good.");
}

6. Cliquez sur la connexion catch puis sur l'onglet Component pour ouvrir sa vue Basic settings et saisissez
dans le champ Expression une expression pour spcifier le type d'exception capturer.

Dans ce scnario, saisissez Exception.class pour capturer toute exception retourne.

7. Double-cliquez sur le composant cProcessor nomm Show_exception pour ouvrir sa vue Basic settings et
personnaliser le code dans la zone Code pour afficher les informations de l'exception et le nom de fichier
associ, comme suit :

System.out.println(exchange.getProperty("CamelExceptionCaught")+
" " + exchange.getIn().getHeader("CamelFileName"));

8. Cliquez sur Ctrl+S pour sauvegarder votre Route.

26 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cTry pour construire des blocs Try/Catch/Finally afin de grer les exceptions

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich ci-dessus, les messages sont routs de (from) l'metteur vers (.to) le rcepteur. Les blocs
.doTry(), .doCatch() et .doFinally() sont construits par le cTry_1. Ainsi, lorsqu'un fichier ne rpond
pas aux conditions de contenu, une exception est retourne et capture, avant que chaque fichier soit
finalement rout vers le rcepteur.

2. Appuyez sur F6 pour excuter la Route.

Guide de rfrence des Composants Mediation de Talend ESB 27


Scnario : Utiliser un cTry pour construire des blocs Try/Catch/Finally afin de grer les exceptions

Rsultat : Lorsqu'un fichier ne rpondant pas aux conditions de contenu est dtect, une exception est
retourne et les informations relatives l'exception sont affiches dans la console. A part l'exception, tous
les fichiers de l'metteur sont envoys au rcepteur.

28 Guide de rfrence des Composants Mediation de Talend ESB


Composants Messaging
Ce chapitre passe en revue les principaux composants prsents dans le groupe Messaging de la Palette, dans la
perspective Mediation du Studio Talend.

La famille Messaging regroupe les composants permettant d'accder aux endpoint de messaging, aux systmes
de fichiers, aux rfrentiels de code, etc.

Guide de rfrence des Composants Mediation de Talend ESB


cAMQP

cAMQP

Proprits du cAMQP
Famille de composant Messaging
Fonction Le composant cAMQP envoie des messages , ou consomme des messages provenant d'une file ou d'un
sujet JMS l'aide du broker AMQP.
Objectif Le cAMQP est utilis pour changer des messages entre une Route et un fournisseur JMS l'aide
d'AMQP.
Basic settings URI/Type Slectionnez le type de messaging, queue (file) ou topic (sujet).
URI/Destination Saisissez un nom pour la file ou le sujet du message dans le broker
du message.
ConnectionFactory Cliquez sur le bouton [...] et slectionnez une ConnectionFactory MQ
utiliser pour grer les messages.
Advanced settings Parameters Configurez les paramtres facultatifs dans la table. Cliquez sur le
bouton [+] autant de fois que ncessaire pour ajouter des paramtres
la table. Cliquez dans le champ Value que vous souhaitez modifier et
saisissez une valeur. Consultez le site Web http://camel.apache.org/
amqp.html pour connatre les options disponibles (en anglais).

Assurez-vous de configurer le paramtre clientId avec une valeur


unique si vous devez dployer diffrentes Routes l'aide de ce
composant dans le Runtime. Sinon, les Routes retournent une
exception dans le Runtime.
Utilisation Le composant cAMQP peut tre un composant de dbut, de milieu ou de fin dans une Route. Il doit tre
utilis avec le composant cMQConnectionFactory, crant une connexion un serveur MQ. Pour plus
d'informations concernant le cMQConnectionFactory, consultez cMQConnectionFactory.
Limitation n/a

Scnario : Envoyer des messages et recevoir des


messages d'un broker AMQP
Ce scnario vous explique comment utiliser le composant cAMQP pour envoyer des messages et en consommer
d'une file ou d'un sujet JMS. Pour ce faire, construisez deux Routes, un Route productrice du message et une
Route consommatrice du message. Les messages sont envoys au broker AMQP dans la Route productrice et sont
consomms dans la Route consommatrice.

Dans ce scnario, utilisez Apache ActiveMQ comme broker de messages supportant le protocole AMQP 1.0. Vous
devez lancer le serveur ActiveMQ avant d'excuter la Route. Pour plus d'informations concernant l'installation et
le lancement du serveur ActiveMQ, consultez le site Web http://activemq.apache.org/index.html (en anglais).

30 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

Construire la Route productrice


Dposer et relier les composants

1. De la Palette, glissez-dposez un composant cMQConnectionFactory, un cTimer, un cSetBody, un


cAMQP et un cLog dans l'espace de modlisation graphique.

2. Vous pouvez renommer les composants afin de mieux identifier leur rle au sein de la Route et les relier
l'aide de liens Row > Route, comme dans la capture d'cran ci-dessus.

Configurer les composants


1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings.

2. Dans la liste MQ Server, slectionnez AMQP 1.0 pour la gestion des messages. Laissez les paramtres par
dfaut pour les autres options.

Dans le champ Broker URI, saisissez l'URI du serveur local ActiveMQ, "localhost" dans cet exemple.

3. Double-cliquez sur le cTimer pour ouvrir sa vue Basic settings.

4. Dans le champ Repeat, saisissez 5 pour gnrer cinq fois l'change de messages. Laissez les autres paramtres
par dfaut.

Guide de rfrence des Composants Mediation de Talend ESB 31


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

5. Double-cliquez sur le cSetBody pour ouvrir sa vue Basic settings.

6. Slectionnez SIMPLE dans la liste droulante Language et saisissez "Hello world" dans le champ
Expression, comme corps du message.

7. Double-cliquez sur le composant cAMQP pour ouvrir sa vue Basic settings.

8. Dans la liste Type, slectionnez queue ou topic pour envoyer des messages vers une file ou un sujet JMS.
Slectionnez queue dans ce scnario.

Dans le champ Destination, saisissez un nom pour la file, par exemple "myqueue".

Dans le champ ConnectionFactory, cliquez sur le bouton [...] et slectionnez la ConnectionFactory MQ


configure, pour grer les messages.

9. Laissez les paramtres par dfaut du composant cLog pour enregistrer les changes de messages.

10. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Route.

Visualiser le code et excuter la Route

1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

32 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

Comme montr ci-dessus, le flux de message provenant du cTimer_1 reoit un payload par le cSetBody_1
puis est envoy au cAMQP_1 et au cLog_1.

2. Appuyez sur F6 pour excuter la Route. Les logs de l'change de messages sont affichs dans la console.

3. Dans la console Web de ActiveMQ, vous pouvez voir que la file de messages myqueue a t cre.

Guide de rfrence des Composants Mediation de Talend ESB 33


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

Construire la Route consommatrice

Dposer et relier les composants

1. De la Palette, glissez-dposez un composant cMQConnectionFactory, un cAMQP et un cLog dans l'espace


de modlisation graphique.

2. Renommez les composants afin de mieux identifier leur rle au sein de la Route puis reliez-les l'aide d'un
lien Row > Route comme dans la capture d'cran ci-dessus.

Configurer les composants

1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings.

34 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

2. Dans la liste MQ Server, slectionnez AMQP 1.0 pour grer les messages. Laissez les paramtres par dfaut
pour les autres options.

3. Double-cliquez sur le cAMQP pour afficher sa vue Basic settings.

4. Dans la zone URI, spcifiez dans la liste Type et le champ Destination du cAMQP les mmes valeurs que
dans la Route productrice.

Dans le champ ConnectionFactory, cliquez sur le bouton [...] et slectionnez la ConnectionFactory MQ


configure, pour grer les messages.

5. Laissez les paramtres par dfaut du cLog afin d'enregistrer les changes de messages.

6. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Route.

Visualiser le code et excuter la Route

1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 35


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

Comme affich ci-dessus, le flux de messages est rout du cAMQP_1 au cLog_1.

2. Appuyez sur F6 pour excuter la Route. Les logs de l'change de messages sont affichs dans la console.

3. Dans la console Web ActiveMQ, vous pouvez voir que les messages de la file myqueue ont t consomms.

36 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker AMQP

Guide de rfrence des Composants Mediation de Talend ESB 37


cCXF

cCXF

Proprits du cCXF
Famille de composant Messaging
Fonction Le composant cCXF fournit l'intgration avec Apache CXF pour la connexion aux services
JAX-WS.
Objectif Le cCXF est utilis pour produire ou consommer des services Web.
Basic settings Service/Address URL de l'endpoint du service o le service Web est fourni.

Si le cCXF est utilis pour consommer un service Web et que le


lookup de l'endpoint utilise le Service Locator (si la case Use Service
Locator est coche), l'URL doit tre "locator://anyAddress/".
Service/Type Slectionnez le type que vous souhaitez utiliser pour fournir le
service Web entre wsdlURL et serviceClass.

wsdlURL : Slectionnez ce type pour fournir le service Web partir


d'un fichier WSDL. Slectionnez Repository ou File pour fournir
le service Web partir d'une ressource de Route ou du systme de
fichiers.

serviceClass : Slectionnez ce type pour fournir le service Web


partir d'une classe Java SEI (Service Endpoint Interface).
Service/WSDL File Ce champ s'affiche lorsque le type de service wsdlURL est
slectionn. Si le fichier WSDL se trouve dans le systme de fichiers,
parcourez votre systme ou saisissez le chemin d'accs votre fichier
WSDL. S'il provient d'une ressource de Route, cliquez sur le bouton
[...] et slectionnez la ressource dans l'arborescence. La liste Version
apparat et vous permet de slectionner une version parmi toutes
celles de la ressource de Route.
Service/Service Cette option apparat lorsque l'option wsdlURL est slectionne
configuration dans la liste Type. Cela vous permet de configurer les informations
de l'endpoint du service. Cliquez sur [...] pour ouvrir l'assistant de
configuration du service.

Le champ WSDL, dans l'assistant, est automatiquement renseign


grce au fichier WSDL dfini dans le champ WSDL File. Vous
pouvez galement configurer le fichier WSDL directement dans
l'assistant de configuration du service, d'une des manires suivantes :

Cliquez sur Browse... pour parcourir votre systme ou saisir le


chemin d'accs au fichier WSDL dans le systme de fichiers.

Cliquez sur Services pour slectionner un service sous le nud


Services, dans la perspective Integration du Studio,

Cliquez sur Resources pour slectionner un service sous le nud


Resources.

Aprs avoir configur le fichier WSDL, cliquez sur pour afficher


les port(s) et les oprations disponibles dans les champs Port
Name et Operation, respectivement. Slectionnez celui que vous
souhaitez utiliser et cliquez sur Finish. La case Operation est
disponible uniquement lorsque le composant cCXF est utilis pour
consommer un Service Web.

38 Guide de rfrence des Composants Mediation de Talend ESB


Proprits du cCXF

Service/Service Class Ce champ s'affiche lorsque le type de service serviceClass est


slectionn. Saisissez le nom de la classe du service utiliser pour
fournir le service Web.
Service/Dataformat Style d'change des donnes. POJO, PAYLOAD, RAW ou
CXF_MESSAGE.

POJOs : (Plain Old Java Objects) paramtres Java de la mthode


invoque sur le serveur cible.

PAYLOAD : charge utile du message (payload), contenu de


soap:body.

RAW : message brut reu par la couche de transport sans support


de Service Activity Monitoring.

CXF_MESSAGE : message brut reu par la couche de transport,


avec support de Service Activity Monitoring.
Service Name Nom du service que ce service implmente. Il mappe vers
wsdl:service@name au format ns:SERVICE_NAME o ns est
un prfixe valide de l'espace de nommage du service. Le
champ est automatiquement renseign la fin de l'tape Service
Configuration.
Port Name Nom de l'endpoint que ce service implmente. Il mappe vers
wsdl:port@name, au format ns:PORT_NAME o ns est un
prfixe valide de l'espace de nommage du service. Le champ
est automatiquement renseign la fin de l'tape Service
Configuration.
Operation Name Nom de l'opration que ce service implmente. Il mappe vers
wsdl:operation@name, au format ns:OPERATION_NAME o ns
un prfixe valide de l'espace de nommage. Cette option est
disponible lorsque le composant cCXF utilis consomme un service
Web. Ce champ est automatiquement renseign l'a fin de l'tape
Service configuration.
Use Service Registry Cette option est disponible uniquement si vous avez souscrit l'une
des solutions Enterprise ESB de Talend.

Cochez cette case pour activer le registre de service. Cela permet


une recherche d'endpoint dynamique et permet aux services d'tre
redirigs selon les informations rcupres du registre. Cela
fonctionne uniquement dans le Runtime.

Lorsque le composant cCXF est utilis pour fournir un service Web,


le service dploy dans le Runtime fonctionne avec le registre de
service.

Lorsque le cCXF est utilis pour consommer un service Web :

Dans le champ Correlation Value, spcifiez un ID de corrlation ou


laissez ce champ vide. Pour plus d'informations, lisez la description
de l'option Use Business Correlation.

Dans les champs Username et Password, saisissez les informations


d'authentification. Pour saisir le mot de passe, cliquez sur le bouton
[...] ct du champ Password, puis, dans la bote de dialogue
qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis
cliquez sur OK afin de sauvegarder les paramtres.

Si un jeton SAML est enregistr dans le registre du service, vous


devez spcifier le rle du client dans le champ Role. Vous pouvez
galement cocher la case Propagate Credentials pour effectuer
un appel si un utilisateur est dj authentifi, en propageant les
informations d'authentification. Vous pouvez saisir l'identifiant et
le mot de passe d'authentification via STS afin de propager les
informations d'authentification l'aide de l'identifiant et du mot de
passe, ou vous pouvez fournir l'alias, l'identifiant et le mot de passe
l'aide du certificat. Pour plus d'informations, consultez la description
de l'option Use Authentication.

Guide de rfrence des Composants Mediation de Talend ESB 39


Proprits du cCXF

Pour plus d'informations concernant la configuration et l'utilisation


du Service Registry, consultez le Guide utilisateur de Talend
Administration Center et le Guide Talend ESB Infrastructure
Services Configuration Guide (en anglais).
Use Service Locator Fournit aux consommateurs de services un mcanisme pour
dcouvrir les endpoints de service lors de l'excution sans spcifier
l'emplacement physique de l'endpoint. De plus, cela permet aux
fournisseurs de services d'enregistrer et de supprimer du registre
leurs endpoints de services dans le Service Locator.

Pour les consommateurs de services, l'URL doit tre


configure comme "locator://anyAddress/" dans le
champ CXF Configuration / Address.

La table Custom Properties apparat lorsque la case Use Service

Locator est coche. Cliquez sur le bouton pour ajouter autant


de proprits que ncessaire dans la table. Saisissez le nom et
la valeur de chaque proprit, respectivement dans les champs
Property Name et Property Value, afin d'identifier le service.
Pour plus d'informations concernant l'installation et la configuration
du Service Locator, consultez le Guide Talend ESB Infrastructure
Services Configuration Guide (en anglais).
Use Service Activity Capture les vnements et stocke les informations pour faciliter les
Monitor analyses en profondeur de l'activit des services ainsi que suivre et
tracer des messages via une transaction mtier. Cette option peut tre
utilise pour analyser les temps de rponse des services, identifier les
modles de transport, identifier les messages en entre et en sortie
des services et analyser les causes ventuelles de l'chec des appels
du service, par exemple.

Cette fonctionnalit n'est pas supporte lorsque le mode de


traitement utilis est MESSAGE. Quand l'option MESSAGE est
slectionne dans le champ Dataformat, la case Use Service
Activity Monitor est dcoche.

Cette option est galement dsactive lorsque la case Use Service


Registry est coche, si vous avez souscrit l'une des solutions
Enterprise ESB de Talend.
Use Authentication Cochez cette case pour activer l'option d'authentification.
Slectionnez Username Token, SAML Token (ESB runtime
only), HTTP Basic ou HTTP Digest.

Lorsque le composant cCXF est utilis pour produire un service


Web service, l'authentification via Username Token, SAML
token ou HTTP Basic fonctionne uniquement dans le conteneur
d'excution. HTTP Digest n'est pas support. Lorsque l'option
SAML Token (ESB runtime only) est slectionne, le cCXF
obtient le jeton SAML de l'en-tte de requte pour usage ultrieur
dans le routage de message.

Lorsque le composant cCXF est utilis pour consommer un


service Web, l'authentification via Username Token, HTTP
Basic ou HTTP Digest fonctionne dans le studio et dans
le conteneur d'excution. L'authentification via SAML token
fonctionne uniquement dans le conteneur d'excution. Saisissez un
nom d'utilisateur et un mot de passe dans les champs correspondants.
Pour saisir le mot de passe, cliquez sur le bouton [...] ct du champ
Password, puis, dans la bote de dialogue qui s'ouvre, saisissez le
mot de passe entre guillemets doubles, puis cliquez sur OK afin de
sauvegarder les paramtres.

Lorsque l'option SAML Token (ESB runtime only) est


slectionne, vous pouvez fournir les informations d'authentification
pour envoyer la requte ou effectuer l'appel si un utilisateur
est authentifi, en propageant les informations d'authentification.
Slectionnez :

40 Guide de rfrence des Composants Mediation de Talend ESB


Proprits du cCXF

- : Saisissez l'identifiant et le mot de passe dans les champs


correspondants afin d'accder au service.

Propagate using U/P : Saisissez l'identifiant et le mot de passe


utiliss pour vous authentifier via STS.

Propagate using Certificate : Saisissez l'alias et le mot de passe


utiliss pour vous authentifier via STS.

Cette case disparat lorsque la case Use Service Registry est coche.
Use Authorization Cette option est disponible uniquement si vous avez souscrit
l'une des solutions Enterprise ESB de Talend. Elle apparat lorsque
l'option SAML Token (ESB runtime only) est slectionne dans la
liste Use Authentication.

Lorsque le composant cCXF est utilis pour fournir un service Web,


cochez cette case pour activer l'autorisation.

Lorsque le composant cCXF est utilis pour consommer un service


Web, cochez cette case pour invoquer les appels autoriss et
spcifier le rle du client dans le champ Role.

Pour plus d'informations concernant la gestion des rles et et


des droits des utilisateurs, consultez le Guide utilisateur de
Talend Administration Center User Guide et le Guide Talend ESB
Infrastructure Services Configuration Guide (en anglais).
Use Business Correlation Cochez cette case pour activer l'option de corrlation afin que les
services en chane soient groups sous le mme ID de corrlation.

Lorsque le cCXF est utilis pour fournir un service Web :

Le cCXF extrait l'ID de corrlation du message de requte.

Si le message de requte ne contient pas d'ID de corrlation, le


fournisseur cre automatiquement un ID de corrlation dans l'en-tte
SOAP.

Lorsque le cCXF est utilis pour consommer un service Web :

Vous pouvez spcifier un ID de corrlation dans le champ


Correlation Value l'aide d'une chane de caractres ou d'une
expression simple. Si vous laissez ce champ vide, cette valeur est
gnre automatiquement lors de l'excution. L'ID de corrlation
est cr dans l'en-tte SOAP personnalis du message de requte et
passe au service appel.

Cette case disparat lorsque la case Use Service Registry est coche
ou si l'option RAW est slectionne dans la liste Dataformat.
Advanced settings Arguments Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur le bouton [+] autant de fois que ncessaire pour
ajouter des arguments la table. Cliquez ensuite sur le champ
Value correspondant pour saisir une valeur. Consultez le site http://
camel.apache.org/cxf.html (en anglais) pour voir les options d'URI
disponibles.
Utilisation Le composant cCXF peut tre un composant de dbut, un composant intermdiaire ou un
composant de fin dans une Route.
Limitation L'utilisation de plusieurs composants cCXF ayant le mme nom dans une route n'est pas
supporte.

Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant
ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install
dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section
concernant la configuration du studio dans le Guide d'installation et de migration Talend.

Lorsque le composant cCXF est utilis pour consommer un service Web, si vous
utilisez le format de donnes CXF_MESSAGE, le type du corps de la requte doit tre
javax.xml.transform.Source.class, ou bien le corps de cette requte sera vide.

Guide de rfrence des Composants Mediation de Talend ESB 41


Scnario 1 : Fournir un service Web via le cCXF depuis un fichier WSDL

Pour des exemples d'utilisation simple avec un proxy, par exemple, d'un cCXF un cProcessor
un cCXF, vous devez utiliser le format de donnes RAW, sinon, le corps de la requte sera
rinitialis. S'il est affich par le cProcessor, le corps de la requte en sortie sera vide.

Lorsque le cCXF est utilis pour consommer un service Web et que le format de donnes est
POJO, PAYLOAD, ou CXF_MESSAGE, si une rponse Fault est retourne, le routage du
message s'arrte. Dans ce cas, il est recommand d'utiliser le composant cErrorHandler pour
capturer le message Fault. Pour plus d'informations concernant le cErrorHandler, consultez
cErrorHandler.

Scnario 1 : Fournir un service Web via le cCXF


depuis un fichier WSDL
Dans ce scnario, un service Web est produit par un composant cCXF l'aide d'un fichier WSDL.

Dposer et relier les composants


Ce scnario utilise un composant cCXF et un cProcessor.

1. Dans la Palette, dveloppez le dossier Messaging, slectionnez le composant cCXF et dposez-le dans
l'espace de modlisation graphique.

2. Dveloppez le dossier Processor, slectionnez le composant cProcessor et dposez-le dans l'espace de


modlisation graphique.

3. Cliquez-droit sur le composant cCXF, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cProcessor.

4. Nommez le composant cCXF afin de mieux identifier sa fonctionnalit.

Configurer les composants


Dans ce scnario, le composant cProcessor est utilis uniquement pour activer le cCXF, pour qu'il fonctionne
comme un producteur de service. Il ne ncessite donc aucune configuration.

1. Double-cliquez sur le composant cCXF pour afficher sa vue Basic settings.

42 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Fournir un service Web via le cCXF depuis un fichier WSDL

2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web fournir,
http://192.168.0.212:8000/service.endpoint dans cet exemple.

3. Dans la liste Type, slectionnez wsdlURL pour activer la production du service Web partir d'un fichier
WSDL.

4. Dans le champ Wsdl File, parcourez votre systme ou saisissez le chemin d'accs au fichier WSDL utiliser.

5. Cliquez sur le bouton [...] ct du champ Service Configuration pour ouvrir l'assistant de configuration du
service. Le champ WSDL a t renseign avec le fichier WSDL slectionn. Cliquez sur pour afficher
le port disponible dans le champ Port Name. Slectionnez le port airportSoap et cliquez sur Finish
pour fermer l'assistant. Les champs Service Name et Port Name de l'onglet Basic settings sont renseigns
automatiquement.

6. Dans la liste Dataformat, slectionnez le mode PAYLOAD.

Guide de rfrence des Composants Mediation de Talend ESB 43


Scnario 2 : Fournir un service Web via un cCXF partir d'une classe Java

7. Appuyez sur Ctrl+S pour sauvegarder votre route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, le composant cCXF nomm WebService_producer produit le service
Web partir d'un fichier d'entre airport_soap_route.wsdl l'aide de l'URL de l'endpoint
http://192.168.0.212:8000/service.endpoint.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le service est dmarr avec succs. Vous pouvez y accder depuis un navigateur Web en utilisant
l'URL de l'endpoint du service suivie de ?wsdl.

Scnario 2 : Fournir un service Web via un cCXF


partir d'une classe Java
Dans ce scnario, un service Web est fourni par un fichier de classe Java l'aide d'un composant cCXF.

44 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Fournir un service Web via un cCXF partir d'une classe Java

Crer une classe Java


1. Dans la vue Repository, dveloppez le nud Code et cliquez-droit sur le nud Beans. Dans le menu
contextuel, slectionnez Create Bean.

2. L'assistant [New Bean] s'ouvre. Dans le champ Name, saisissez un nom pour le bean, par exemple,
CXFdemobean. Cliquez sur Finish pour fermer l'assistant.

3. Changez le type de classe en interface, modifiez le type de retour en string et supprimer le corps du
message.

package beans;

public interface CXFdemobean {


public String helloExample(String message) ;
}

4. Appuyez sur Ctrl+S pour sauvegarder votre bean.

Guide de rfrence des Composants Mediation de Talend ESB 45


Scnario 2 : Fournir un service Web via un cCXF partir d'une classe Java

Dposer et relier les composants

Ce scnario utilise un composant cCXF et un cProcessor.

1. Dans la Palette, dveloppez le dossier Messaging, slectionnez le composant cCXF et dposez-le dans
l'espace de modlisation graphique.

2. Dveloppez le dossier Processor, slectionnez le composant cProcessor et dposez-le dans l'espace de


modlisation graphique.

3. Cliquez-droit sur le cCXF, slectionnez Row > Route dans le menu contextuel et cliquez sur le cProcessor.

4. Nommez les composants comme vous le souhaitez pour mieux identifier leur fonction.

Configurer les composants


Dans ce scnario, le composant cProcessor est utilis uniquement pour activer le cCXF afin qu'il fonctionne
comme un producteur de service. Il ne ncessite donc aucune configuration.

1. Double-cliquez sur le composant cCXF pour afficher sa vue Basic settings.

2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web fournir,
http://192.168.0.212:8001/service.endpoint dans cet exemple.

3. Dans la liste Type, slectionnez serviceClass pour dmarrer le service Web partir d'une classe Java.

4. Dans le champ Service Class, spcifiez la classe prdfinie du bean, CXFdemobean dans cet exemple.

5. Dans la liste Dataformat, slectionnez POJO comme format des donnes du service.

6. Appuyez sur Ctrl+S pour sauvegarder votre Route.

46 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Fournir un service Web partir d'une ressource de Route

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, le composant cCXF nomm WebService_producer produit le


service Web partir d'un bean prdfini beans.CXFdemobean l'aide de l'URL de l'endpoint
http://192.168.0.212:8001/service.endpoint.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le service est dmarr avec succs. Vous pouvez y accder via un navigateur Web l'aide de l'URL
de l'endpoint du service, suivie de ?wsdl.

Scnario 3 : Fournir un service Web partir d'une


ressource de Route
Dans ce scnario, un service Web est fourni partir d'une ressource de Route, l'aide d'un composant cCXF.

Crer une ressource de Route


1. Dans la vue Repository, cliquez-droit sur le nud Resources et slectionnez Create Resource dans le menu
contextuel.

Guide de rfrence des Composants Mediation de Talend ESB 47


Scnario 3 : Fournir un service Web partir d'une ressource de Route

2. L'assistant [New Route Resource] s'ouvre. Dans le champ Name, saisissez un nom pour la ressource, par
exemple, DemoServiceWsdl. Cliquez sur Finish pour fermer l'assistant.

3. Parcourez votre systme de fichiers local jusqu' un fichier WSDL existant et cliquez sur Finish.

4. Appuyez sur les touches Ctrl+S pour sauvegarder votre ressource de Route.

48 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Fournir un service Web partir d'une ressource de Route

Dposer et relier les composants

Ce scnario ncessite un composant cCXF et un cProcessor.

1. Dans la Palette, dveloppez le dossier Messaging, et dposez un composant cCXF dans l'espace de
modlisation graphique.

2. Dveloppez le dossier Processor et dposez un cProcessor dans l'espace de modlisation graphique.

3. Cliquez-droit sur le composant cCXF, slectionnez Row > Route dans le menu contextuel et cliquez sur le
cProcessor.

4. Renommez le composant cCXF afin de mieux identifier son rle dans la Route.

Configurer les composants


Dans ce scnario, le composant cProcessor est utilis uniquement afin de faire fonctionner le composant cCXF
comme un producteur de service. Aucune configuration n'est donc ncessaire.

1. Double-cliquez sur le composant cCXF pour afficher sa vue Basic settings.

2. Dans le champ Address, saisissez l'URL de l'endpoint du service pour le service Web fournir, http://
localhost:8000/service.endpoint dans cet exemple.

3. Dans la liste Type, slectionnez wsdlURl et utilisez le type Repository pour dmarrer le service Web partir
de la ressource de Route cre.

Guide de rfrence des Composants Mediation de Talend ESB 49


Scnario 3 : Fournir un service Web partir d'une ressource de Route

4. Dans le champ WSDL File, cliquez sur le bouton [...] et slectionnez DemoServiceWsdl dans l'arborescence
des ressources. Cliquez sur OK pour fermer l'assistant.

5. Cliquez sur le bouton [...] ct du champ Service Configuration pour ouvrir l'assistant de configuration du
service. Le champ WSDL a t renseign avec le fichier WSDL slectionn. Cliquez sur pour afficher
le port disponible dans le champ Port Name. Slectionnez le port DemoServicePort et cliquez sur Finish
pour fermer l'assistant. Les champs Service Name et Port Name de l'onglet Basic settings sont renseigns
automatiquement.

6. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, le composant cCXF nomm WebService_producer produit le service Web
partir d'une ressource de Route prdfinie DemoServiceWsdl, l'aide de l'URL de l'endpoint http://
localhost:8000/service.endpoint.

2. Cliquez sur la vue Run pour l'afficher puis cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur la touche F6 pour l'excuter.

Rsultat : Le service est bien dmarr. Vous pouvez y accder depuis votre navigateur Web en utilisant l'URL
de l'endpoint du service, suivie de ?wsdl.

50 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Fournir un service Web partir d'une ressource de Route

Guide de rfrence des Composants Mediation de Talend ESB 51


cCXFRS

cCXFRS

Proprits du cCXFRS
Famille de composant Messaging
Fonction Le composant cCXFRS fournit l'intgration avec Apache CXF pour la connexion aux services
JAX-RS hbergs dans CXF.
Objectif Le cCXFRS est utilis pour fournir ou consommer des services Web REST-ful.
Basic settings Endpoint URL de l'endpoint du service o le service Web est fourni.
Type Slectionnez le type que vous souhaitez utiliser pour fournir le
service Web REST, Manual ou resourceClass.

Manual : Dterminez le mapping de l'API REST manuellement


dans la table si le composant est utilis comme fournisseur de
service ou configurez la Mthode HTTP ainsi que les autres
paramtres si le composant est utilis comme consommateur de
service.

resourceClass : Slectionnez ce type pour fournir la classe des


ressources que vous souhaitez exporter comme service REST.
REST API Mapping Cette table s'affiche lorsque le type de service Manual est
slectionn et que le cCXFRS est utilis comme fournisseur de
service.

Cliquez sur le bouton [+] sous la table pour ajouter autant de lignes
que ncessaire pour spcifier la requte HTTP :

Output Flow : Spcifiez le nom du flux de sortie.

HTTP Verb : Slectionnez dans la liste une mthode HTTP entre


GET, POST, PUT, DELETE, OPTIONS et HEAD.

URI pattern : Renseignez ce champ avec l'URI REST dcrivant


la ressource.

Consumes : Slectionnez le type de format du contenu consomm


que le composant va utiliser, entre XML or JSON, XML, JSON,
Form, Multipart et Any lorsque, pour l'option HTTP Verb,
POST ou PUT est slectionn.

Produces : Slectionnez le type de format du contenu produit que


le composant va utiliser, entre XML or JSON, XML, JSON,
HTML et Any lorsque, pour l'option HTTP Verb, GET, POST,
PUT ou DELETE est slectionn.

Bean class : Configurez la classe du bean lorsque, pour l'option


HTTP Verb, POST ou PUT est slectionn et le format du
contenu consomm est XML or JSON, XML ou JSON.
Resource Class Ce champ apparat lorsque le type de service resourceClass est
slectionn. Saisissez le nom de la classe de la ressource que vous
souhaitez exporter en tant que service REST.
Operation Ce champ apparat lorsque le type de service resourceClass est
slectionn et que le cCXFRS est utilis comme consommateur du
service. Saisissez le nom de l'opration.
Relative Path Ce champ apparat lorsque le type de service Manual est
slectionn et que le cCXFRS est utilis comme consommateur du
service. Saisissez le chemin relatif du serveur REST invoquer.

52 Guide de rfrence des Composants Mediation de Talend ESB


Proprits du cCXFRS

HTTP Method Ce champ apparat lorsque le type de service Manual et


que le cCXFRS est utilis comme consommateur du service.
Slectionnez dans la liste une mthode HTTP entre GET, POST,
PUT et DELETE.
Content Type Ce champ apparat lorsque le type de service Manual et que le
cCXFRS est utilis comme consommateur du service.

Slectionnez XML, JSON ou FORM selon le type de contenu


charger du ct serveur. Cette liste apparat uniquement lorsque
vous slectionnez la mthode POST ou PUT dans la liste HTTP
Method.
Accept Type Ce champ apparat lorsque le type de service Manual est
slectionn et que le cCXFRS est utilis comme consommateur
du service.

Slectionnez le type de mdia que le ct client est prpar


accepter comme rponse du ct serveur. Les options disponibles
sont XML, JSON et ANY. Lorsque l'option ANY est slectionne,
le message de rponse peut tre de tout type et sera transform en
une chane de caractres. Cette liste n'apparat pas lorsque vous
slectionnez la mthode DELETE.
Response Class Ce champ apparat lorsque le type de service Manual est
slectionn que le cCXFRS est utilis comme consommateur du
service. Saisissez le nom de la classe de la rponse.
Use Service Locator Cochez cette case pour activer le Service Locator. Spcifiez
l'espace de nommage du service et le nom du service dans les
champs correspondants.
Use Service Activity Cochez cette case pour activer le Service Activity Monitor.
Monitor
Use Authentication Cochez cette case pour activer l'option d'authentification.
Slectionnez SAML Token (ESB runtime only) ou HTTP Basic.

Lorsque le composant cCXFRS est utilis comme consommateur,


saisissez un identifiant et un mot de passe dans les champs
correspondants. Pour saisir le mot de passe, cliquez sur le bouton
[...] ct du champ Password et, dans la bote de dialogue,
saisissez le mot de passe entre guillemets doubles puis cliquez sur
OK pour sauvegarder les paramtres.
Use Authorization Cette option est disponible uniquement si vous avez souscrit l'une
des solutions Talend Enterprise ESB. Elle apparat lorsque l'option
SAML Token (ESB runtime only) est slectionne dans la liste
Use Authentication.

Lorsque le composant cCXFRS est utilis comme fournisseur de


service, cochez cette case pour activer les autorisations.

Lorsque le composant cCXFRS est utilis comme consommateur


de service, cochez cette case pour invoquer un appel autoris et
spcifiez le rle du client dans le champ Role.
Use Business Correlation Cochez cette case pour crer une ID de corrlation dans ce
composant.

Vous pouvez spcifier une ID de corrlation dans le champ


Correlation Value.
Advanced settings Log messages Cochez cette case pour enregistrer l'change de messages dans la
Route.
Arguments Configurez les arguments supplmentaires dans la table
correspondante. Cliquez sur le bouton [+] autant de fois que
ncessaire pour ajouter des arguments la table. Cliquez sur le
champ Value correspondant et saiisissez uen valeur. Consultez le
site http://camel.apache.org/cxfrs.html (en anglais) pour connatre
les options d'URI disponibles.
Utilisation Le composant cCXFRS peut tre un composant de dbut dans une Route, comme fournisseur
de service, un composant de milieu ou un composant de fin comme consommateur de service.

Guide de rfrence des Composants Mediation de Talend ESB 53


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

Limitation Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant
ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install
dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section
concernant la configuration du studio dans le Guide d'installation et de migration Talend.

Scnario : Fournir et consommer un service REST


l'aide du cCXFRS
Ce scnario dmontre comment utiliser le composant cCXFRS pour fournir et consommer un service REST. Pour
ce faire, deux Routes sont construites, une Route pour fournir le service et une Route pour le consommer.

Construire la Route fournisseuse de service


Cette Route fournit un service Web REST accessible pour les requtes.

Dposer et relier les composants

1. De la Palette, glissez-dposez un composant cCXFRS, un cSetBody, un cLog et un cBeanRegister dans


l'espace de modlisation graphique.

2. Reliez le cCXFRS, le cSetBody et le cLog l'aide de liens Row > Route.

3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.

Configurer les composants

1. Double-cliquez sur le composant cBeanRegister pour afficher sa vue Basic settings.

54 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

2. Dans le champ Id, saisissez "customers" pour renommer le bean.

Slectionnez l'option Customized et saisissez le code suivant dans le champ Code pour crer deux clients.
Configurez les valeurs des colonnes firstName, lastName, city et id pour chaque client :

beans.Customers customers = new beans.Customers();

beans.Customer customer = new beans.Customer();


customer.setFirstName(TalendDataGenerator.getFirstName());
customer.setLastName(TalendDataGenerator.getLastName());
customer.setCity(TalendDataGenerator.getUsCity());
customers.addCustomer(customer);

customer = new beans.Customer();


customer.setFirstName(TalendDataGenerator.getFirstName());
customer.setLastName(TalendDataGenerator.getLastName());
customer.setCity(TalendDataGenerator.getUsCity());
customers.addCustomer(customer);

beanInstance = customers;

3. Double-cliquez sur le composant cCXFRS pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 55


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

4. Dans le champ Endpoint, saisissez l'URL de l'endpoint o sera fourni le service Web, "http://localhost:8040/
services/customers" dans cet exemple.

Dans la liste Type, slectionnez Manual pour dterminer manuellement le mapping de l'API REST.

Dans la table REST API mapping, cliquez sur le bouton [+] pour ajouter une ligne la table. Dans le champ
Output Flow, saisissez getAllCustomers comme nom de flux. Slectionnez GET dans la liste HTTP Verb.
Laissez les paramtres par dfaut dans les autres colonnes.

5. Double-cliquez sur le composant cSetBody pour afficher sa vue Basic settings.

6. Slectionnez SIMPLE dans la liste Dataformat. Dans le champ Expression, saisissez "ref:customers" pour
vous rfrer au bean dfini dans le composant cBeanRegister.

7. Laissez les paramtres par dfaut du composant cLog pour enregistrer les changes de messages.

8. Appuyez sur les touches Ctrl+S pour enregistrer la Route.

56 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme montr dans le code, la Route est construite depuis (from) le composant cCXFRS_1, configure le
corps du message dans le cSetBody_1 puis le passe au cLog_1.

2. Cliquez sur la vue Run pour l'afficher puis cliquez sur le bouton Run pour lancer l'excution de la Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le service est dmarr. Vous pouvez y accder depuis un navigateur Web utilisant l'URI de
l'endpoint du service.

Construire la Route consommatrice du service


Cette Route consomme le service REST construit dans la Route fournisseuse.

Guide de rfrence des Composants Mediation de Talend ESB 57


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

Dposer et relier les composants

1. Dans la Palette, glissez-dposez un cTimer, un cCXFRS et un cLog dans l'espace de modlisation graphique.

2. Reliez le cTimer, le cCXFRS et le cLog l'aide de liens Row > Route.

3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.

Configurer les composants

1. Double-cliquez sur le cTimer pour afficher sa vue Basic settings.

2. Dans le champ Repeat, saisissez 1 pour gnrer une fois l'change de messages. Laissez les autres paramtres
par dfaut.

3. Double-cliquez sur le composant cCXFRS pour afficher sa vue.

4. Dans le champ Endpoint, saisissez l'URL du service Web construite dans la Route fournisseuse, "http://
localhost:8040/services/customers" dans cet exemple.

Slectionnez Manual dans la liste Type. Dans le champ Relative Path, saisissez constant(""). Slectionnez
GET dans la liste HTTP Method. Laissez les autres paramtres par dfaut.

5. Laissez les paramtres par dfaut du composant cLog afin d'enregistrer les changes de messages.

58 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Fournir et consommer un service REST l'aide du cCXFRS

6. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour voir le code gnr.

Comme affich dans le code, la Route est construite partir du from cTimer_1. Les options HTTP_PATH,
HTTP_METHOD, ACCEPT_CONTENT_TYPE et CAMEL_CXF_RS_RESPONSE_CLASS sont configures dans le
cCXFRS_1. Le message est rout vers le cLog_1.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les informations clients sont affiches dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 59


cDataset

cDataset

Proprits du cDataset
Famille de composant Messaging
Fonction Le composant cDataset vous permet de crer un nouvel ensemble de donnes (Data set) ou de
rfrencer un ensemble de donnes existant pour envoyer ou recevoir des messages.
Objectif Le cDataset fournit un mcanisme permettant d'effectuer sur votre systme des tests de
chargement et des tests sur le long terme. Cela fonctionne en vous permettant de crer des
instances d'ensembles de donnes comme sources de messages et comme moyen d'valuer que
les ensemble de donnes sont reus.
Basic settings Id Saisissez l'ID du bean du Dataset.
Produce Delay Spcifiez une priode en millisecondes durant laquelle mettre en
pause les producteurs.
Consume Delay Spcifiez une priode en millisecondes durant laquelle mettre en
pause les consommateurs.
Preload Size Spcifiez combien de messages doivent tre envoys avant que
l'initialisation de la Route soit termine.
Initial Delay Spcifiez, en millisecondes, le temps attendre avec de
commencer envoyer des messages.
Minimum Rate Spcifiez le nombre minimal de messages que l'ensemble de
donnes doit contenir avant de commencer envoyer des
messages.
Register new Bean Cochez cette case pour enregistrer un nouveau bean.
Bean Class Saisissez la classe du bean. Ce champ apparat lorsque la case
Register new Bean est coche.
Arguments Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur le bouton [+] autant de fois que ncessaire pour ajouter
des arguments la table. Cette table apparat lorsque la case
Register new Bean est coche.
Utilisation Le cDataset peut tre un composant de dbut, de milieu ou de fin dans une Route.

Scnario : Utiliser le cDataset pour recevoir des


messages
Dans ce scnario, un composant cDataset est utilis pour recevoir des messages dclenchs par un cTimer.

60 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cDataset pour recevoir des messages

Dposer et relier les composants


1. Du dossier Messaging de la Palette, glissez-dposez un composant cTimer et un cDataset dans l'espace de
modlisation graphique.

2. Du dossier Transformation, glissez-dposez un composant cSetBody dans l'espace de modlisation


graphique.

3. Du dossier Processor, glissez-dposez un cProcessor dans l'espace de modlisation graphique.

4. Reliez les composants l'aide d'un lien Row > Route.

5. Renommez les composants afin de mieux identifier leur rle dans la Route, comme dans la capture d'cran.

Configurer les composants


1. Double-cliquez sur le composant cTimer, nomm Starter, pour ouvrir sa vue Basic settings.

2. Dans le champ Repeat, saisissez 2 pour gnrer deux fois l'change de messages. Laissez les autres
paramtres par dfaut.

3. Double-cliquez sur le cSetBody, nomm Set_message_body, pour ouvrir sa vue Basic settings.

4. Slectionnez Constant dans la liste Language et saisissez "Hello!" dans le champ Expression comme
corps du message.

5. Double-cliquez sur le composant cDataset, nomm Receive_message, pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 61


Scnario : Utiliser le cDataset pour recevoir des messages

6. Dans le champ Id, saisissez "myDataset" comme ID du bean de l'ensemble de donnes. Laissez les
paramtres par dfaut des autres options.

Dans le champ Bean Class est configure l'implmentation par dfaut de Camel
org.apache.camel.component.dataset.SimpleDataSet. Dans ce scnario, un nouveau bean d'un
ensemble de donnes est enregistr.

7. Double-cliquez sur le cProcessor, nomm Monitor, pour ouvrir sa vue Basics settings.

8. Dans la zone Code, personnalisez le code pour afficher le corps des changes de messages.

System.out.println("---------BODY--------");
System.out.println(exchange.getIn().getBody(String.class));
System.out.println("---------END---------")

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

62 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cDataset pour recevoir des messages

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich dans le code, la Route est construite partir de (from) l'endpoint Starter_cTimer_1, le
corps du message est configur "Hello!" par le composant cSetBody_1, rout vers (.to) le cDataset_1,
puis trait par le cProcessor_1.

2. Appuyez sur la touche F6 pour excuter la Route.

Rsultat : Le corps du message s'affiche deux fois dans la console d'excution.

Guide de rfrence des Composants Mediation de Talend ESB 63


cDirect

cDirect

Proprits du cDirect
Famille de composant Messaging
Fonction Le composant cDirect fournit une invocation directe et synchrone de tous les consommateurs
lorsqu'un producteur envoie un change de messages.
Objectif Le cDirect vous permet de produire et de consommer des messages de manire synchrone dans
diffrents process au sein d'un seul CamelContext.
Basic settings Name Cette option apparat lorsque le cDirect est utilis en tant que
composant de dbut ou de milieu dans une Route.

Saisissez une chane de caractres identifiant uniquement


l'endpoint.
Use Exist cDirect Cette option apparat lorsque le cDirect est utilis en tant que
composant de milieu ou de fin dans une Route.

Cliquez sur le bouton [...] et slectionnez le consommateur


correspondant dans la bote de dialogue.
Utilisation Le composant cDirect peut tre utilis en tant que composant de dbut, de fin ou en tant que
composant intermdiaire dans une Route.

Scnario associ
Pour un scnario associ, consultez Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et
consommer sparment des messages.

64 Guide de rfrence des Composants Mediation de Talend ESB


cDirectVM

cDirectVM

Proprits du cDirectVM
Famille de composant Messaging
Fonction Le composant cDirectVM fournit une invocation directe et synchrone de tous les
consommateurs lorsqu'un producteur envoie un change de messages. Il supporte les
communication dans le mme CamelContext et travers les CamelContexts dans une mme
JVM.
Objectif Le cDirectVM vous permet de produire et de consommer des messages de manire synchrone
dans diffrents threads dans un CamelContext et travers diffrents CamelContexts dans la
mme JVM. Vous pouvez utiliser ce mcanisme pour communiquer travers des applications
Web.
Basic settings Lorsque ce composant est utilis au dbut d'une Route :
Endpoint Name Saisissez toute chane de caractres identifiant uniquement
l'endpoint.
Lorsque ce composant est utilis au milieu ou la fin d'une Route :
Select From Existing(s) Cliquez sur ce bouton radio pour slectionner un consommateur
existant. Cliquez sur le bouton [...] ct du champ Consumer
pour afficher le(s) consommateur(s) existant(s) et slectionner
celui devant consommer le message.
Input Endpoint Name Cliquez sur ce bouton radio pour saisir le nom du consommateur
dans le champ Endpoint Name.
Block if Consumer is not Cochez cette case pour bloquer le producteur si le consommateur
active n'est pas actif durant la priode dfinie dans le champ Timeout.
Timeout Cette option apparat lorsque l'option Block if Consumer is not
active est active. Spcifiez la priode de temps, en millisecondes,
aprs laquelle le producteur arrte d'attendre que le consommateur
soit actif.
Utilisation Le composant cDirectVM peut tre utilis comme composant de dbut, de milieu ou de fin dans
une Route.

Scnario : Messaging direct et synchrone dans une


mme JVM
Dans ce scnario, un change de messages est dclench dans une sous-Route et consomm de manire synchrone
dans une autre sous-Route, l'aide du mcanisme Direct-VM. Du ct consommateur, le contenu du message est
trait et affich dans la console.

Construire le Job
1. Dans la Palette, glissez-dposez les composants suivants dans l'espace de modlisation graphique : un
cTimer, un cSetHeader, un cSetBody, deux cDirectVM et un cProcessor.

2. Reliez le cTimer, le cSetHeader, le cSetBody et le premier cDirectVM l'aide de liens Row > Route, afin
de former une sous-Route.

Guide de rfrence des Composants Mediation de Talend ESB 65


Scnario : Messaging direct et synchrone dans une mme JVM

3. Reliez le second cDirectVM au composant cProcessor l'aide d'un lien Row > Route, afin de former une
autre sous-Route.

4. Renommez les composants afin de mieux identifier leur rle dans la Route.

Configurer les composants

Configurer la premire sous-Route

1. Double-cliquez sur le composant cTimer (nomm Starter dans cet exemple), pour afficher sa vue Basic
settings.

2. Dans le champ Repeat, saisissez 1 pour que l'change de messages soit dclench une seule fois. Laissez
les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le composant cSetHeader (nomm Set_message_headers dans cet exemple) pour afficher
sa vue Basic settings.

66 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Messaging direct et synchrone dans une mme JVM

4. Cliquez deux fois sur le bouton [+] afin d'ajouter deux en-ttes dans la table Headers et donnez-leur un nom
et une valeur.

Dans cet exemple, nommez respectivement les en-ttes Name et Company puis saisissez Bill et Talend comme
valeurs.

5. Double-cliquez sur le composant cSetBody (nomm Set_message_body dans cet exemple) pour afficher sa
vue Basic settings.

6. Slectionnez SIMPLE dans la liste Language pour dclencher une seul change de messages texte.

7. Dans le champ Expression, saisissez Hi there entre guillemets doubles, comme corps du message.

8. Double-cliquez sur le premier composant cDirectVM (nomm D-VM_producer dans cet exemple) pour
afficher sa vue Basic settings.

9. Slectionnez un endpoint consommateur existant ou spcifiez le nom de l'endpoint consommateur.

Guide de rfrence des Composants Mediation de Talend ESB 67


Scnario : Messaging direct et synchrone dans une mme JVM

Dans cet exemple, nommez l'endpoint consommateur dvm, slectionnez l'option Input Endpoint Name et
saisissez le nom de l'endpoint consommateur dvm dans le champ Endpoint Name.

Configurer la seconde sous-Route

1. Double-cliquez sur le second cDirectVM (nomm D-VM_consumer dans cet exemple) pour afficher sa vue
Basic settings.

2. Dans le champ Endpoint Name, saisissez dvm entre guillemets doubles, afin de nommer l'endpoint.

3. Double-cliquez sur le cProcessor (nomm Show_message dans cet exemple) afin d'afficher sa vue Basic
settings.

4. Dans la zone Code, saisissez le code suivant pour afficher le contenu des en-ttes et corps de messages :

exchange.getOut().setHeader("header1",exchange.getIn().getHeader("Name"));
exchange.getOut().setHeader("header2",exchange.getIn().getHeader("Company"));
exchange.getOut().setBody(exchange.getIn().getBody(String.class));
System.out.println();
System.out.println("Message for "+exchange.getOut().getHeader("header1")
+" of "+exchange.getOut().getHeader("header2")+":");
System.out.println(exchange.getOut().getBody(String.class));

Excuter la Route
Cliquez sur l'onglet Run et cliquez sur le bouton Run pour excuter votre Route. Vous pouvez galement appuyez
sur F6.

68 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Messaging direct et synchrone dans une mme JVM

Rsultat : Le message gnr dans la premire sous-Route est consomm de manire synchrone dans l'endpoint
consommateur et affich dans la console aprs traitement. L'change de messages est dclench une fois, comme
configur.

Guide de rfrence des Composants Mediation de Talend ESB 69


cFile

cFile

Proprits du cFile
Famille de composant Messaging
Fonction Le composant cFile offre un accs aux systmes de fichiers.
Objectif Le cFile permet de faire traiter des fichiers par d'autres composants Camel ou de sauvegarder
sur le disque des messages d'autres composants.
Basic settings Path Chemin d'accs au(x) fichier(s) au(x)quel(s) accder ou
sauvegarder.
Parameters/Noop Cochez cette case afin de laisser le(s) fichier(s) dans le dossier
original aprs lecture.
Parameters/Flatten Cochez cette case pour supprimer le nom des sous-rpertoires dans
le chemin d'accs au fichier. Cela vous permet de consommer
de manire rcursive dans les sous-rpertoires, mais quand vous
crivez, par exemple, les fichiers dans un autre rpertoire, ils seront
crits dans un seul rpertoire.
Parameters/AutoCreate Cochez cette case pour crer automatiquement le rpertoire
spcifi dans le champ Path s'il n'existe pas.
Parameters/BufferSize(kb) Saisissez la taille de la mmoire tampon, en kilooctets.
Encoding Slectionnez l'encodage du fichier, ISO-8859-15, UTF-8, ou
CUSTOM.
FileName Nom du fichier traiter. Utilisez cette option si vous souhaitez
consommer uniquement un fichier dans le rpertoire spcifi.
Advanced settings Advanced Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur le bouton [+] autant de fois que ncessaire pour ajouter
des arguments la table. Cliquez ensuite sur le champ Value
correspondant pour saisir une valeur. Consultez le site http://
camel.apache.org/file2.html (en anglais) pour voir les options
d'URI disponibles.
Utilisation Le composant cFile peut tre un composant de dbut, un composant intermdiaire ou un
composant de fin dans une Route.

Scnario : Lire des fichiers d'un rpertoire et les crire


dans un autre
Dans ce scnario, un composant d'entre cFile est configur pour parcourir un rpertoire de fichiers locaux et
envoyer les fichiers dans un composant cFile de sortie qui crit ces fichiers dans un autre rpertoire.

70 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Lire des fichiers d'un rpertoire et les crire dans un autre

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Messaging et slectionnez le composant cFile. Dposez-en un comme
composant d'entre et un comme composant de sortie, dans l'espace de modlisation graphique.

2. Cliquez-droit sur le composant d'entre cFile, slectionnez Row > Route dans le menu contextuel et cliquez
sur le composant de sortie cFile.

3. Nommez les composants afin de mieux identifier leur fonctionnalit.

Configurer les composants


1. Double-cliquez sur le composant d'entre cFile pour afficher sa vue Basic settings.

2. Dans le champ Path, parcourez votre systme ou saisissez le chemin d'accs au fichier d'entre et laissez les
autres champs tels qu'ils sont.

3. Double-cliquez sur le composant de sortie cFile pour afficher sa vue Basic settings.

4. Dans le champ Path, parcourez votre systme ou saisissez le chemin d'accs au fichier de sortie, comme dans
la capture d'cran ci-dessus. Laissez les autres paramtres tels qu'ils sont.

5. Appuyez sur Ctrl+S pour sauvegarder votre route.

Guide de rfrence des Composants Mediation de Talend ESB 71


Scnario : Lire des fichiers d'un rpertoire et les crire dans un autre

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, une route de message est construite d'un (from) endpoint vers (.to) un autre.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les fichiers d'entre sont crits dans le rpertoire de sortie spcifi.

72 Guide de rfrence des Composants Mediation de Talend ESB


cFtp

cFtp

Proprits du cFtp
Famille de composant Messaging
Fonction Le composant cFtp fournit un accs des systmes de fichiers distants via les protocoles FTP,
FTPS et SFTP.
Objectif Le cFtp vous permet d'changer des donnes travers des systmes de fichiers distants.
Basic settings Parameters/type Slectionnez le protocole de transfert de fichiers, ftp, ftps ou sftp.
Parameters/server Saisissez l'adresse du serveur distant auquel accder.
Parameters/port Saisissez le numro du port auquel accder.
Parameters/username Saisissez l'identifiant de l'utilisateur.
Parameters/password Saisissez le mot de passe de l'utilisateur. Pour saisir le mot de
passe, cliquez sur le bouton [...] ct du champ Password, puis,
dans la bote de dialogue qui s'ouvre, saisissez le mot de passe entre
guillemets doubles, puis cliquez sur OK afin de sauvegarder les
paramtres.
Parameters/directory Saisissez le nom du rpertoire auquel vous souhaitez accder sur
le serveur distant. S'il n'est pas spcifi, vous accdez par dfaut
au rpertoire racine.
Advanced settings Advanced Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur [+] autant de fois que ncessaire pour ajouter des
arguments la table. Cliquez sur le champ Value correspondant
et saisissez une valeur. Consultez le site http://camel.apache.org/
ftp.html (en anglais) pour connatre les options d'URI disponibles.
Utilisation Le composant cFtp peut tre un composant de dbut, un composant intermdiaire ou un
composant de fin dans une Route.

Scnario associ
Aucun scnario pour ce composant n'est disponible pour le moment.

Guide de rfrence des Composants Mediation de Talend ESB 73


cHttp

cHttp

Proprits du cHttp
Famille de composant Messaging
Fonction Le composant cHttp fournit des endpoints bass HTTP pour consommer et produire des requtes
HTTP.
Objectif Le cHttp vous permet de consommer des ressources externes HTTP en tant que client et de
produire des services Web en tant que serveur.
Basic settings Uri Saisissez l'URI de la ressource HTTP appeler.
Client Slectionnez cette option pour utiliser le cHttp en tant que client
pour appeler des serveurs externes.
Server Slectionnez cette option pour utiliser le cHttp en tant que serveur
pour produire des services Web.
Client Configuration/ Slectionnez une mthode de requte HTTP dans la liste.
Method Slectionnez GET, POST, PUT, DELETE, HEAD, OPTIONS
ou TRACE.
GET : Rcupre les informations identifies par l'URI de la
requte.

Parameters : cliquez sur le bouton [+] pour ajouter le nombre de


lignes ncessaire et dfinir leur cl et leur valeur dans la table.

Encoder Charset : saisissez le jeu de caractres de l'encodeur


dans le champ.
POST : Demande via une requte que le serveur d'origine accepte
l'entit dans la requte comme une nouvelle subordonne de la
ressource identifie par l'URI de la requte.

Plain Text : slectionnez le type de contenu (Content-Type)


parmi text/plain, text/html, text/xml, application/x-www-form-
urlencoded, application/xml, application/JSON et other... (si vous
slectionnez other..., spcifiez le type de contenu dans le champ
qui apparat) et saisissez le texte dans le champ Content du
message de la requte.

Form Style : cliquez sur le bouton [+] afin d'ajouter des lignes
et de dfinir leur cl et leur valeur dans la table Parameters.
Saisissez galement le jeu de caractres de l'encodeur dans le
champ Encoder Charset.

Use Message Body : utilisez le corps du message entrant


comme requte HTTP. Slectionnez le type de contenu
parmi text/plain, text/html, text/xml, application/x-www-form-
urlencoded, application/xml, application/JSON et other... (si vous
slectionnez other..., spcifiez le type de contenu dans le champ
qui apparat).
PUT : Demande via une requte que l'entit soit stocke sous
l'URI de la requte fournie.

Plain Text : slectionnez le type de contenu (Content-Type)


parmi text/plain, text/html, text/xml, application/x-www-form-
urlencoded, application/xml, application/JSON et other... (si vous
slectionnez other..., spcifiez le type de contenu dans le champ
qui apparat) et saisissez le texte dans le champ Content du
message de la requte.

74 Guide de rfrence des Composants Mediation de Talend ESB


Proprits du cHttp

Form Style : cliquez sur le bouton [+] afin d'ajouter des lignes
et de dfinir leur cl et leur valeur dans la table Parameters.
Saisissez galement le jeu de caractres de l'encodeur dans le
champ Encoder Charset.

Use Message Body : utilisez le corps du message entrant


comme requte HTTP. Slectionnez le type de contenu
parmi text/plain, text/html, text/xml, application/x-www-form-
urlencoded, application/xml, application/JSON et other... (si vous
slectionnez other..., spcifiez le type de contenu dans le champ
qui apparat).
DELETE : Demande via une requte que le serveur d'origine
supprime la ressource identifie par l'URI de la requte.

Parameters : cliquez sur le bouton [+] pour ajouter des lignes et


dfinir leur cl et leur valeur dans la table.

Encoder Charset : saisissez dans ce champ le jeu de caractres


de l'encodeur.
HEAD : Identique GET mais le serveur ne doit pas retourner le
corps d'un message dans la rponse.

Parameters : cliquez sur le bouton [+] pour ajouter des lignes et


dfinir leur cl et leur valeur dans la table.

Encoder Charset : saisissez dans ce champ le jeu de caractres


de l'encodeur.
OPTIONS : Reprsente une requte d'informations concernant
les options de communication disponibles dans la chane requte/
rponse identifie par l'URI de la requte.
TRACE : Invoque le loop-back de la couche applicative distante
du message de la requte.
Server Configuration / DefaultHttpBinding copie le flux d'entre de requte dans le
Disable Stream Cache cache d'un flux (stream cache) et le met dans le corps du
message. Lorsque cette case est coche, DefaultHttpBinding met
directement le flux d'entre de la requte dans le corps du message.
Server Configuration / Cochez cette case pour activer le gestionnaire de session du ct
Session Support serveur de Jetty.
Server Configuration / Use Cette option est coche par dfaut. Si la case est dcoche, la
Transfer-Encoding servlet de Jetty dsactive le streaming HTTP et configure la
longueur de l'en-tte de la rponse.
Server Configuration / Cochez cette option pour activer le support de Jetty JMX pour
Enable JMX cet endpoint. Pour plus d'informations concernant cette option,
consultez le site Web http://camel.apache.org/jetty.html#Jetty-
JettyJMXsupport (en anglais).
Server Configuration / Cochez cette case pour utiliser CamelServlet et trouver un
Match on URI Prefix consommateur cible en mettant en correspondance le prfixe
de l'URI si aucune correspondance exacte n'est trouve.
Pour plus d'informations concernant cette option, consultez
le site Web http://camel.apache.org/how-do-i-let-jetty-match-
wildcards.html (en anglais).
Server Configuration / Use Cochez cette case pour utiliser les "continuations" Jetty pour
Jetty Continuation le serveur Jetty. Pour plus d'informations concernant cette
option, consultez le site Web http://wiki.eclipse.org/Jetty/Feature/
Continuations (en anglais).
Server Configuration / Cochez cette case pour activer la mthode HTTP TRACE.
Enable HTTP TRACE
Advanced settings Headers Cliquez sur le bouton [+] pour ajouter des lignes et dfinir la cl
et la valeur des en-ttes.
Utilisation Le composant cHttp fournit des endpoints bass HTTP pour consommer des ressources HTTP
externes, c'est--dire en tant que client appelant des serveurs externes l'aide de Http.
Limitation Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant
ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install

Guide de rfrence des Composants Mediation de Talend ESB 75


Scnario 1 : Rcuprer le contenu d'un fichier distant

dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section
concernant la configuration du studio dans le Guide d'installation et de migration Talend.

Scnario 1 : Rcuprer le contenu d'un fichier distant


Dans ce scnario, le composant cHttp est utilis pour interroger le corps d'un fichier de dfinition de condition
mtorologique disponible l'adresse : http://wsf.cdyne.com/WeatherWS/Weather.asmx.

Dposer et relier les composants


1. Dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un
cMessagingEndpoint, un cSetBody, un cHttp et un cProcessor. Nommez-les respectivement STARTER,
HTTP_REQUEST_BODY, GET_WEATHER_DESCRIPTION et PRINT_RESPONSE.

2. Reliez les composants l'aide de liens Row > Route.

Configurer les composants


1. Double-cliquez sur le cMessagingEndpoint pour ouvrir sa vue Basic settings.

2. Dans le champ URI, saisissez timer:go?repeatCount=1 afin de dfinir un dlai avant de dmarrer les
changes de messages. Dans cet exemple, un seul change de messages est effectu selon la confguration
de repeatCount=1.

3. Double-cliquez sur le composant cSetBody pour ouvrir sa vue Basic settings.

76 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Rcuprer le contenu d'un fichier distant

4. Dans la liste Language, slectionnez Constant.

5. Dans le champ Expression, saisissez le code suivant comme corps du message de la requte :

<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:weat=\"http://ws.cdyne.com
/WeatherWS/\"><soapenv:Header/><soapenv:Body><weat:GetWeatherDefinitionInformation/
></soapenv:Body></soapenv:Envelope>

6. Double-cliquez sur le cHttp pour ouvrir sa vue Basic settings.

7. Dans le champ Uri, saisissez l'emplacement du fichier rcuprer, http://wsf.cdyne.com/WeatherWS/


Weather.asmx dans cet exemple.

8. Cliquez sur le bouton radio Client pour utiliser le composant cHttp en tant que client.

9. Slectionnez POST dans la liste Method puis slectionnez Use Message Body. Dans la liste Content-Type,
slectionnez text/xml.

10. Cliquez sur Advanced settings pour configurer les paramtres avancs.

11. Cliquez deux fois sur le bouton [+] pour ajouter deux lignes dans la table Headers.

Saisissez SOAPAction et http://ws.cdyne.com/WeatherWS/GetWeatherInformation dans les champs


Key et Value.

12. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 77


Scnario 1 : Rcuprer le contenu d'un fichier distant

13. Dans le champ Code, saisissez le code suivant pour afficher la rponse du site Web distant, c'est--dire le
corps du fichier souhait :
System.out.println("--------------------RESPONSE--------------------");
System.out.println(exchange.getIn().getBody(String.class));
System.out.println("--------------------END--------------------");

14. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich ci-dessus, l'change de messages dmarre partir


(from) de l'endpoint STARTER, rcupre le corps dfini comme
<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/
\"xmlns:weat=\"http://ws.cdyne.com/WeatherWS/\"><soapenv:Header/
><soapenv:Body><weat:GetWeatherDefinitionInformation/></soapenv:Body></

78 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Utiliser un cHttp pour produire un service Web

soapenv:Envelope> dans le cSetBody_1 et est envoy au site Web spcifi par le cHttp_1. La rponse est
crite dans la console via le cProcessor_1.

2. Appuyez sur F6 pour excuter la Route.

Comme affich ci-dessus, le fichier rcupr dfinit 37 conditions mtorologiques avec leur description
dtaille.

Scnario 2 : Utiliser un cHttp pour produire un service


Web
Dans ce scnario, le cHttp est utilis en tant que serveur pour dmarrer un service Web. Un composant cProcessor
est utilis pour interroger le service.

Dposer et relier les composants

1. Glissez-dposez un cHttp et un cProcessor de la Palette dans l'espace de modlisation graphique.

2. Reliez les composants l'aide d'un lien Row > Route.

3. Renommez les composants afin d'identifier leur rle au sein de la Route.

Configurer les composants


1. Double-cliquez sur le cHttp pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 79


Scnario 2 : Utiliser un cHttp pour produire un service Web

2. Dans le champ URI, saisissez "http://localhost:8088/user", o les requtes pourront atteindre le


service.

3. Cliquez sur le bouton radio Server pour utiliser le composant en tant que cHttp serveur. Laissez les autres
paramtres tels qu'ils sont.

4. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

5. Dans la zone Code, saisissez le code suivant pour obtenir l'en-tte id du message chang :

System.out.println(exchange.getIn().getHeader("id"));

6. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

80 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Utiliser un cHttp pour produire un service Web

Comme ci-dessus, la Route est construite depuis (from) l'endpoint server_cHttp_1. L'en-tte du message,
id, est affich dans la console par le cProcessor_1.

2. Appuyez sur F6 pour excuter la Route.

3. Ouvrez votre navigateur Web. Dans la barre d'adresse, saisissez http://localhost:8088/user?id=1 puis
cliquez sur Enter. Une page blanche s'ouvre.

4. Retournez dans le studio. L'ID 1 est affich dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 81


cJMS

cJMS

Proprits du cJMS
Famille de composant Messaging
Fonction Le composant cJMS envoie des messages vers (ou consomme des messages d') une file ou un sujet JMS.
Objectif Le cJMS est utilis pour changer des messages entre une Route et un provider JMS.
URI/Type Slectionnez le type de message, queue (file) ou topic (sujet).
URI/Destination Saisissez un nom pour la file ou le sujet JMS.
ConnectionFactory Cliquez sur le bouton [...] et slectionnez une ConnectionFactory
JMS utiliser pour la gestion des messages ou saisissez le nom du
composant cMQConnectionFactory directement dans le champ.
Advanced settings URI Options Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur le bouton [+] autant de fois que ncessaire pour
ajouter des arguments la table. Cliquez ensuite sur le champ
Value correspondant pour saisir une valeur. Consultez le site http://
camel.apache.org/jms.html (en anglais) pour voir les options d'URI
disponibles.
Utilisation Le cJMS peut tre utilis en tant que composant de dbut, composant intermdiaire ou composant
de fin dans une Route. Il doit tre utilis avec le composant cMQConnectionFactory, crant une
connexion un serveur MQ. Pour plus d'informations concernant le cMQConnectionFactory, consultez
cMQConnectionFactory.
Limitation n/a

Scnario 1 : Envoyer et recevoir un message d'une file


JMS
Dans ce scnario, un composant cJMS envoie des messages depuis un systme de fichiers local vers une file de
messages dans une Route. Les messages sont consomm par un autre composant cJMS dans une autre Route.

82 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Envoyer et recevoir un message d'une file JMS

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Contexts et dposez un composant cMQConnectionFactory dans
l'espace de modlisation graphique afin de spcifier la ConnectionFactory JMS pour grer les messages.

2. Du dossier Messaging de la Palette, dposez un composant cFile et deux cJMS dans l'espace de modlisation
graphique.

3. Du dossier Processor de la Palette, dposez un cProcessor dans l'espace de modlisation graphique.

4. Reliez le composant cFile au premier cJMS l'aide d'un lien Row > Route afin de crer une Route productrice
de messages.

5. Reliez le second composant cJMS au cProcessor l'aide d'un lien Row > Route afin de crer une Route
consommatrice de messages.

6. Renommez les composants dans les deux Routes afin de mieux identifier leur fonctionnalit.

Configurer les composants


1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings.

2. Dans la liste MQ Server, slectionnez un serveur MQ. Dans ce scnario, slectionnez le serveur par dfaut,
ActiveMQ afin de grer les messages.

Dans le champ Broker URI, saisissez l'URI du broker de messages. Utilisez l'URI par dfaut : "vm://
localhost?broker.persistent=false".

3. Dans la Route productrice de messages, double-cliquez sur le composant cFile afin d'afficher sa vue Basic
settings.

4. Dfinissez les proprits du cFile.

Guide de rfrence des Composants Mediation de Talend ESB 83


Scnario 1 : Envoyer et recevoir un message d'une file JMS

Dans ce scnario, spcifiez simplement le chemin d'accs au dossier contenant le fichier source envoyer
comme message lectronique et laissez les autres paramtres tels qu'ils sont.

5. Double-cliquez sur le cJMS nomm Message_producer pour afficher sa vue Basic settings.

6. Dans la liste Type, slectionnez queue pour envoyer les messages dans une file JMS.

Dans le champ Destination, saisissez le nom de la file JMS, "queue.hello" dans cet exemple.

Double-cliquez sur le bouton [...] ct de ConnectionFactory. Slectionnez la ConnectionFactory MQ que


vous venez de configurer puis cliquez sur OK.

7. Passez la Route consommatrice de messages et double-cliquez sur le composant cJMS nomm


Message_consumer pour afficher sa vue Basic settings.

8. Configurez le consommateur de messages en utilisant exactement les mmes paramtres que dans le
producteur de messages.

9. Double-cliquez sur le composant cProcessor pour afficher sa vue Basic settings.

84 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Envoyer et recevoir un message d'une file JMS

10. Dans la zone Code, personnalisez le code pour afficher le nom des fichiers des messages consomms dans
la console de la vue Run.

System.out.println("Message consumed: "+


exchange.getIn().getHeader("CamelFileName"));

11. Appuyez sur Ctrl+S pour sauvegarder vos Routes.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas des l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code ci-dessus, une Route de messages est construite partir d'un (from) fichier
source (File_source_cFile_1) vers (.to) le producteur de messages (cJMS_1), qui envoie le message dans
une file de messages via un broker identifi par vm://localhost?broker.persistent=false. Le message
provenant (from) du Message_consumer_cJMS_2 est trait par le cProcessor_1.

2. Cliquez sur le bouton Run de la vue Run pour excuter chacune de vos Routes. Vous pouvez galement
appuyer sur F6 pour les excuter.

Rsultat : Les messages sont reus par le consommateur, comme affich dans la console de la vue Run.

Guide de rfrence des Composants Mediation de Talend ESB 85


Scnario 2 : Mettre en place une transaction JMS locale

Scnario 2 : Mettre en place une transaction JMS


locale
Dans ce scnario, une transaction locale compose de trois tapes est effectue pour envoyer, tester et consommer
un message JMS :

1. La premire Route est utilise pour envoyer un message "hello world!" qui alimente la file JMS queue.hello.

2. La deuxime Route est utilise pour tester le message JMS reu. Six tentatives d'envoi dans la file queue.hello
sont effectues avant que le message ne soit dplac dans la file JMS Dead Letter. Cette Route est programme
pour gnrer une exception chaque fois qu'un change est trait par la Route.

3. La dernire Route est utilise pour consommer le message "hello world!" situ dans la file JMS Dead Letter.

Dans ce scnario, utilisez le serveur local ActiveMQ pour grer les messages entre les diffrentes Routes, vous
devez dmarrer le serveur ActiveMQ avant d'excuter ces Routes. Pour plus d'informations sur l'installation et
le dmarrage du serveur ActiveMQ, consultez le site Web d'Apache ActiveMQ (en anglais) l'adresse suivante
http://activemq.apache.org/index.html.

Envoyer un message dans la file JMS queue.hello

Dposer et relier les composants


1. Depuis la Palette, dposez les cinq composants suivants dans l'espace de modlisation graphique : un
cMQConnectionFactory, un cConfig, un cMessagingEndpoint, un cJMS et un composant cProcessor.

2. Reliez le composant cMessagingEndpoint au cJMS l'aide d'un lien Row > Route.

86 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Mettre en place une transaction JMS locale

3. Reliez le composant cJMS au cProcessor l'aide d'un lien Row > Route.

Configurer les composants

1. Double-cliquez sur le composant cMQConnectionFactory nomm AMQ_Send_ConnectionFactory pour


afficher sa vue Basic settings dans l'onglet Component.

2. Dans la liste MQ Server, slectionnez un serveur MQ. Dans ce scnario, slectionnez le serveur par dfaut,
ActiveMQ afin de grer les messages.

3. Dans le champ Broker URI, saisissez l'URI du serveur par dfaut d'Active MQ : "tcp://localhost:61616".

4. Double-cliquez sur le composant cConfig, nomm DatasetConfig, pour afficher sa vue Basic settings dans
l'onglet Component.

5. Dans le champ Code, saisissez du code pour enregistrer l'instance du jeu de donnes hello dans le Registry,
comme ci-dessous.

org.apache.camel.component.dataset.SimpleDataSet dataset = new


org.apache.camel.component.dataset.SimpleDataSet(1);
dataset.setDefaultBody("Test Data: hello world!");
org.apache.camel.impl.SimpleRegistry registry = new
org.apache.camel.impl.SimpleRegistry();
registry.put("hello",dataset);
camelContext.setRegistry(registry);

6. Double-cliquez sur le composant cMessagingEndpoint, nomm SimpleDatasetGen, pour afficher sa vue


Basic settings dans l'onglet Component.

Guide de rfrence des Composants Mediation de Talend ESB 87


Scnario 2 : Mettre en place une transaction JMS locale

7. Dans le champ URI, saisissez dataset:hello entre les guillemets.

8. Double-cliquez sur le composant cJMS nomm AMQ_Send pour afficher sa vue Basic settings.

9. Dans la liste Type, slectionnez queue pour envoyer le message dans une file JMS.

Dans le champ Destination, saisissez le nom de la file JMS, "queue.hello" dans ce scnario.

Double-cliquez sur le bouton [...] ct de ConnectionFactory. Slectionnez la ConnectionFactory MQ que


vous venez de configurer puis cliquez sur OK. .

10. Double-cliquez sur le composant cProcessor nomm PrintSendMsg pour afficher sa vue Basic settings dans
l'onglet Component, et personnalisez le code dans la zone Code afin d'afficher le message envoy qui sera
intercept dans la console.

System.out.println("AMQ Send: "+


exchange.getIn().getBody(String.class));

Excuter la Route
Cliquez sur le bouton Run de la vue Run pour excuter votre Route. Vous pouvez galement appuyer sur
F6 pour l'excuter.

88 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Mettre en place une transaction JMS locale

Rsultat : Un message "hello world!" est envoy dans la file JMS, comme affich dans la console de la vue
Run.

Tester le message reu

Dposer et relier les composants

1. Depuis la Palette, dposez les quatre composants suivants dans l'espace de modlisation graphique : un
cJMS, deux composants cProcessor et un cMQConnectionFactory.

2. Reliez le composant cJMS au premier cProcessor l'aide d'un lien Row > Route.

3. Reliez le premier cProcessor au second cProcessor l'aide d'un lien Row > Route.

Configurer les composants

1. Double-cliquez sur le composant cMQConnectionFactory nomm AMQ_Rev_ConnectionFactory pour


afficher sa vue Basic settings dans l'onglet Component.

Guide de rfrence des Composants Mediation de Talend ESB 89


Scnario 2 : Mettre en place une transaction JMS locale

2. Dans la liste MQ Server, slectionnez un serveur MQ. Dans ce scnario, slectionnez le serveur par dfaut,
ActiveMQ afin de grer les messages.

Cochez la case Use transaction.

3. Dans le champ Broker URI, saisissez l'URI du serveur par dfaut d'Active MQ : "tcp://localhost:61616".

4. Double-cliquez sur le composant cJMS nomm AMQ_Rev pour afficher sa vue Basic settings.

5. Dans la liste Type, slectionnez queue pour envoyer le message dans une file JMS.

Dans le champ Destination, saisissez le nom de la file JMS, "queue.hello" dans ce scnario.

Double-cliquez sur le bouton [...] ct de ConnectionFactory. Slectionnez la ConnectionFactory MQ que


vous venez de configurer puis cliquez sur OK.

6. Double-cliquez sur le premier composant cProcessor nomm PrintRevMsg pour afficher sa vue Basic
settings dans l'onglet Component, et personnalisez le code dans la zone Code afin d'afficher le message reu
qui sera intercept dans la console.

System.out.println("AMQ Receive: "+


exchange.getIn().getBody(String.class));

7. Double-cliquez sur le second composant cProcessor nomm ThrowEx pour afficher sa vue Basic settings
dans l'onglet Component et personnalisez le code dans la zone Code afin de gnrer l'exception Force fail
chaque fois qu'un change est trait par cette Route.

throw new Exception("Force fail")

Excuter la Route

Cliquez sur le bouton Run de la vue Run pour excuter votre Route. Vous pouvez galement appuyer sur
F6 pour l'excuter.

Rsultat : Le message "hello world!" est test et une transaction de rollback (retour l'tat antrieur) est
effectue. Lorsque six tentatives de renvoi du message sont atteintes, le message en attente est envoy dans
la file JMS Dead Letter.

90 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Mettre en place une transaction JMS locale

Consommer le message situ dans la file JMS Dead Letter

Dposer et relier les composants


1. Depuis la Palette, dposez les trois composants suivants dans l'espace de modlisation graphique : un
cMQConnectionFactory, un cJMS et un composant cProcessor.

2. Reliez le composant cJMS au cProcessor l'aide d'un lien Row > Route.

Configurer les composants


1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings dans l'onglet
Component.

2. Dans la liste MQ Server, slectionnez un serveur MQ. Dans ce scnario, slectionnez le serveur par dfaut,
ActiveMQ, afin de grer les messages.

3. Dans le champ Broker URI, saisissez l'URI du serveur par dfaut d'Active MQ : "tcp://localhost:61616".

4. Double-cliquez sur le composant cJMS nomm DeadLetterQueueJMS pour afficher sa vue Basic settings.

5. Dans la liste Type, slectionnez queue pour envoyer le message dans une file JMS.

Dans le champ Destination, saisissez le nom de la file JMS, "ActiveMQ.DLQ" dans ce scnario (la file
d'attente Dead Letter par dfaut dans ActiveMQ).

Double-cliquez sur le bouton [...] ct de ConnectionFactory. Slectionnez la ConnectionFactory MQ que


vous venez de configurer puis cliquez sur OK.

Guide de rfrence des Composants Mediation de Talend ESB 91


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

6. Double-cliquez sur le composant cProcessor nomm PrintMsg pour afficher sa vue Basic settings dans
l'onglet Component, et personnalisez le code dans la zone Code afin d'afficher le message reu qui sera
intercept dans la console.

System.out.println("AMQ Receive: "+


exchange.getIn().getBody(String.class));

Excuter la Route

Cliquez sur le bouton Run de la vue Run pour excuter votre Route. Vous pouvez galement appuyer sur
F6 pour l'excuter.

Rsultat : Le message "hello world!" qui tait dans la file Dead Letter est consomm, comme affich dans
la console Run.

Scnario 3 : Envoyer et recevoir une livraison planifie


de messages d'une file JMS via Camel Quartz
Ce scnario vous explique comment utiliser le composant Camel Quartz pour effectuer une livraison planifie de
messages d'une file JMS.

Pour ce faire, construisez deux Routes, une Route productrice de messages et une Route consommatrice de
messages. Vous allez implmenter le composant Quartz dans la Route productrice et envoyer des messages
planifis dans une file JMS. Les messages sont consomms par la Route consommatrice.

92 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

Dans ce scnario, vous allez utiliser Apache ActiveMQ comme broker de messages. Vous devez lancer le serveur
d'ActiveMQ avant d'excuter la Route. Pour plus d'informations concernant l'installation et le lancement du serveur
d'ActiveMQ, consultez le site Web http://activemq.apache.org/index.html (en anglais).

Construire la Route productrice

Dposer et relier les composants

1. De la Palette, glissez-dposez un cMQConnectionFactory, un cJMS, un cSetBody et deux


cMessagingEndpoint dans l'espace de modlisation graphique.

2. Renommez les composants afin de mieux identifier leur rle et reliez-les l'aide de liens Row > Route.

Configurer les composants

1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings.

2. Dans la liste MQ Server, slectionnez ActiveMQ pour grer les messages.

Dans le champ Broker URI, saisissez l'URI du serveur local d'Active MQ, "tcp://localhost:61616".

Cochez la case Use PooledConnectionFatory et laissez les paramtres par dfaut.

3. Double-cliquez sur le composant quartzConsumer pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 93


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

4. Dans le champ URI, saisissez le code "quartz://HelloWorld?


trigger.repeatInterval=2000&trigger.repeatCount=-1" pour dfinir un dlai avant le dbut des
changes de messages. Dans ce scnario, les message doivent tre livrs indfiniment durant un intervalle de
deux secondes. Pour plus d'informations concernant Quartz, consultez le site Web http://camel.apache.org/
quartz.html (en anglais).

5.
Cliquez sur l'onglet Advanced settings. Cliquez sur le bouton au bas du tableau Dependencies pour
ajouter une ligne et slectionnez quartz dans la liste droulante. Pour plus d'informations concernant le
composant Quartz, consultez le site Web http://camel.apache.org/quartz.html (en anglais).

6. Double-cliquez sur le cSetBody pour ouvrir sa vue Basic settings.

7. Slectionnez Simple dans la liste Language et saisissez "Hello world" dans le champ Expression.

8. Double-cliquez sur le composant logMessage pour ouvrir sa vue Basic settings.

94 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

9. Dans le champ URI, saisissez "log:quartzMessage", o les changes de messages sont enregistrs.

10. Double-cliquez sur le jmsProducer pour afficher sa vue Basic settings .

11. Dans la liste Type, slectionnez queue pour envoyer les messages dans une file JMS.

Dans le champ Destination, saisissez un nom pour la file JMS, "quartzTest" dans ce scnario.

Dans le champ ConnectionFactory, cliquez sur le bouton [...] et slectionnez la ConnectionFactory MQ


configure.

12. Appuyez sur Ctrl+S pour sauvegarder la Route.

Visualiser le code et excuter la Route

1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich ci-dessus, le flux de message provenant de quartzConsumer rcupre un payload du


cSetBody_1 et est envoy aux logMessage et jmsProducer.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Les logs des changes de messages sont affichs dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 95


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

Construire la Route consommatrice

Dposer et relier les composants

1. De la Palette, glissez-dposez un cMQConnectionFactory, un cJMS et un cMessagingEndpoint dans


l'espace de modlisation graphique.

2. Renommez les composants pour identifier leur rle et reliez-les l'aide d'un lien Row > Route.

Configurer les composants

1. Double-cliquez sur le composant cMQConnectionFactory pour afficher sa vue Basic settings.

96 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

2. Configurez le composant cMQConnectionFactory comme dans la Route productrice.

3. Double-cliquez sur le jmsConsumer pour afficher sa vue Basic settings.

4. Configurez le composant jmsConsumer comme le jmsProducer de la Route productrice afin de consommer


les messages de la file "quartzTest" dfinie.

5. Double-cliquez sur le logMessage pour ouvrir sa vue Basic settings.

6. Dans le champ URI, saisissez "log:quartzMessage", o les changes de messages sont enregistrs.

7. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route

1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 97


Scnario 3 : Envoyer et recevoir une livraison planifie de messages d'une file JMS via Camel Quartz

Comme affich ci-dessus, le flux de messages est rout du jmsConsumer au logMessage.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Les logs des changes de messages sont affichs dans la console.

98 Guide de rfrence des Composants Mediation de Talend ESB


cMail

cMail

Proprits du cMail
Famille de composant Messaging
Fonction Le composant cMail fournit des accs aux e-mails via le support de Spring Mail et le systme
sous-jacent Java Mail.
Objectif Le cMail est conu pour envoyer ou recevoir des e-mails dans une Route.
Basic settings Protocols Liste des protocoles d'envoi ou de rception d'e-mails.
Host Nom de l'hte du serveur d'e-mail.
Port Numro de port du serveur d'e-mail.
UserName et Password Informations d'authentification, respectivement l'identifiant et le
mot de passe. Pour saisir le mot de passe, cliquez sur le bouton
[...] ct du champ Password, puis, dans la bote de dialogue
qui s'ouvre, saisissez le mot de passe entre guillemets doubles,
puis cliquez sur OK afin de sauvegarder les paramtres.
Subject Sujet du mail envoyer.
Content Type Type de contenu de l'e-mail.
From metteur de l'e-mail.
To Destinataire(s) de l'e-mail.
CC Les destinataires en CC de l'e-mail. Vous pouvez saisir
diffrentes adresses e-mail en les sparant par une virgule.
BCC Les destinataires en CCI de l'e-mail. Vous pouvez saisir
diffrentes adresses e-mail en les sparant par une virgule.
Advanced settings Arguments Cliquez sur le bouton [+] pour ajouter les lignes ncessaires
la table Arguments. Saisissez le nom et la valeur d'un argument
pour chaque ligne ajoute.
Utilisation Lorsqu'il est utilis comme composant de dbut, le cMail est conu pour recevoir des e-mails.
Sinon, il est conu pour en envoyer.
Limitation Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant
ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install
dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la
section concernant la configuration du studio dans le Guide d'installation et de migration
Talend.

Scnario : Utiliser un composant cMail pour envoyer


et recevoir des e-mails
Ce scnario comprend deux routes. La premire envoie un e-mail et la seconde le reoit.

Construisez la route pour envoyer l'e-mail.

Envoyer un e-mail
1. Dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un cFile, un cMail
et un cProcessor, respectivement nomms Mail_to_send, Send_Mail et Mail_Sent.

Guide de rfrence des Composants Mediation de Talend ESB 99


Scnario : Utiliser un composant cMail pour envoyer et recevoir des e-mails

2. Reliez les composants l'aide de liens Row > Route.

3. Double-cliquez sur le cFile pour ouvrir sa vue Basic settings.

4. Cliquez sur le bouton [...] ct du champ Path afin de slectionner dans votre systme le dossier contenant
le fichier envoyer.

5. Dans le champ FileName, saisissez le nom du fichier envoyer, test mail.txt dans cet exemple. Laissez les
autres paramtres tels qu'ils sont.

Le contenu de ce fichier est test mail body.

6. Double-cliquez sur le cMail afin d'ouvrir sa vue Basic settings.

7. Dans la liste Protocols, slectionnez smtps.

Dans le champ Host, saisissez le nom de l'hte du serveur SMTP, smtp.gmail.com dans ce scnario.

Dans les champs UserName et Password, saisissez les informations d'authentification, sous forme de
variables de contexte dans cet exemple. Pour plus d'informations concernant la configuration des variables
de contexte, consultez le Guide utilisateur du Studio Talend.

Laissez le champ ContentType par dfaut, c'est--dire text/plain.

Dans le champ To, saisissez l'adresse e-mail du destinataire. Dans ce scnario, saisissez la variable de contexte
correspondante.

8. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

100 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un composant cMail pour envoyer et recevoir des e-mails

9. Dans le champ Code, saisissez le code ci-dessous afin d'afficher une fentre pop-up lorsque l'e-mail est
envoy.

System.out.println("Mail sent");

10. Sauvegardez votre route et appuyez sur F6 pour l'excuter.

Comme affich ci-dessus, l'e-mail a bien t envoy.

Construisez la route recevant l'e-mail.

Recevoir un e-mail
1. Dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un cMail et un
cProcessor, respectivement nomms Receive_Mail et Mail_Body.

2. Reliez les composants l'aide d'un lien Row > Route.

3. Double-cliquez sur le cMail afin d'ouvrir sa vue Basic settings.

4. Dans la liste Protocols, slectionnez imaps.

5. Dans le champ Host, saisissez le nom de l'hte du serveur imap, imap.gmail.com dans cet exemple.

6. Dans le champ Port, saisissez le numro du port, 993 dans ce scnario.

7. Dans les champs UserName et Password, saisissez les informations d'authentification, sous forme de
variables de contexte dans cet exemple. Pour plus d'information concernant la configuration des variables de
contexte, consultez le Guide utilisateur du Studio Talend.

Guide de rfrence des Composants Mediation de Talend ESB 101


Scnario : Utiliser un composant cMail pour envoyer et recevoir des e-mails

8. Laissez le champ ContentType par dfaut, c'est--dire text/plain.

9. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

10. Dans le champ Code, saisissez le code ci-dessous afin d'afficher le corps du message.

System.out.println(exchange.getIn().getBody(String.class));

11. Sauvegardez la route et appuyez sur F6 pour l'excuter.

Comme affich ci-dessus, l'e-mail a bien t reu et son contenu est test mail body.

102 Guide de rfrence des Composants Mediation de Talend ESB


cMessagingEndpoint

cMessagingEndpoint

Proprits du cMessagingEndpoint
Famille de composant Messaging
Fonction Le composant cMessagingEndpoint permet deux applications de communiquer en envoyant
ou en recevant des messages, un endpoint ne pouvant pas faire les deux.
Objectif Le cMessagingEndpoint envoie ou reoit des messages.
Basic settings URI URI des messages envoyer ou recevoir. Ils peuvent tre de
diffrents formats :

- Fichier : "file:/",

- Base de donnes : "jdbc:/",

- Protocoles : "ftp:/", "http:/"

- etc.

Vous pouvez ajouter des paramtres l'URI l'aide de la syntaxe


gnrique des URIs, par exemple :

"file:/directoryName?option=value&option=value"

Pour plus d'informations concernant les diffrents composants


pouvant tre utiliss dans le cMessagingEndpoint, consultez
le site Web de Apache Camel : http://camel.apache.org/
components.html (en anglais).
Advanced settings Dependencies Par dfaut, le noyau de Camel supporte les composants suivants :
bean, browse, class, dataset, direct, file, language, log, mock,
properties, ref, seda, timer, vm.

Pour utiliser d'autres composants, vous devez fournit les


dpendances correspondant ces composants dans le composant
cMessagingEndpoint. Pour ce faire :

Cliquez sur le bouton [+] pour ajouter une nouvelle ligne


dans la liste Camel component. Dans la ligne ajoute,
slectionnez le composant que vous souhaitez utiliser dans le
cMessagingEndpoint. Pour plus d'informations concernant les
composants Camel les plus utiliss, consultez Composants Camel
les plus utiliss.
Use a custom component Si vous souhaitez utiliser un composant personnalis, cochez cette
case et cliquez sur le bouton [...] pour charger un fichier .jar avec
votre propre composant.

Toutes les dpendances transitives de ce composant


personnalis doivent tre incluses dans le fichier jar.
Utilisation Ce composant peut tre utilis pour envoyer et/ou recevoir des endpoints de messages selon sa
position dans la Route.

Composants Camel les plus utiliss


Le tableau suivant liste les composants Camel les plus frquemment utiliss pouvant tre appels par le composant
cMessagingEndpoint. Cliquez sur les liens dans le tableau afin de vous rendre sur le site Web de Apache

Guide de rfrence des Composants Mediation de Talend ESB 103


Composants Camel les plus utiliss

Camel et consulter les dernires informations concernant ces composants. Assurez-vous d'utiliser les informations
applicables la version de Camel incluse dans votre Talend ESB. Consultez galement le Guide Talend ESB
Mediation Developer Guide (en anglais) pour plus d'informations concernant les composants Camel.

Composant / ID de l'artefact / URI Description


ActiveMQ / activemq-camel Composant pour JMS Messaging avec Apache ActiveMQ.

activemq:[topic:]destinationName
AHC / camel-ahc Permet d'appeler des services externes HTTP avec Async Http
Client.
ahc:http[s]://hostName[:port][/resourceUri][?
options]
APNS / camel-apns Envoie des notifications aux appareils Apple iOS.

apns:<notify|consumer>[?options]
Avro / camel-avro Fonctionne avec Apache Avro pour la srialisation de donnes.

avro:[transport]:[host]:[port][/messageName][?
options]
Atom / camel-atom Fonctionne avec Apache Abdera pour une intgration d'Atom,
comme la consommation d'un flux Atom.
atom:uri
Bean / camel-core Utilise Camel Bean Binding pour lier des changes de messages
aux beans dans le Registry Camel. Egalement utilis pour exposer
bean:beanName[?method=someMethod] et invoquer des POJOs (Plain Old Java Objects).
Cache / camel-cache Le composant Cache simplifie la cration d'endpoints et de
processeurs de mise en cache l'aide de EHCache comme
cache://cachename[?options] implmentation de cache.
Class / camel-core Utilise Camel Bean Binding pour lier des changes de messages
aux beans dans le Registry Camel. Egalement utilis pour exposer
class:className[?method=someMethod] et invoquer des POJOs (Plain Old Java Objects).
CMIS / camel-cmis Utilise l'API client Apache Chemistry pour communiquer avec les
CMS supportant le standard CMIS.
cmis://cmisServerUrl[?options]
Context / camel-context Utilis pour faire rfrence aux endpoints dans un CamelContext
spar afin de fournir une approche simple de composition
context:camelContextI localEndpointName prdfinie (black box composition) afin que les Routes puissent
tre combines dans un CamelContext puis utilises en tant
que composant "black box" dans d'autres Routes, dans d'autres
CamelContexts.
CouchDB / camel-couchdb Permet d'intgrer Apache CouchDB.

couchdb:hostName[:port]/database[?options]
Crypto (Signatures numriques) / camel-crypto Utilis pour signer et vrifier des changes l'aide du service de
signature de Java Cryptographic Extension.
crypto:sign:name[?options], crypto:verify:name[?
options]
CXF / camel-cxf Fonctionne avec Apache CXF pour l'intgration de services Web.

cxf:address[?serviceClass=...]
CXF Bean / camel-cxf Traite les changes l'aide d'un bean annot JAX WS ou JAX RS
du Registry. Ncessite moins de configuration que le composant
cxf:bean name CXF ci-dessus.
CXFRS / camel-cxf Fonctionne avec Apache CXF pour l'intgration de services
REST.
cxfrs:address[?resourcesClasses=...]
Direct / camel-core Appel synchrone d'un autre endpoint partir du mme Contexte
Camel (CamelContext).
direct:name
Disruptor / camel-disruptor Permet de fournir l'implmentation de SEDA, base sur le
disruptor.
disruptor-vm:someName[?<option>]

104 Guide de rfrence des Composants Mediation de Talend ESB


Composants Camel les plus utiliss

Composant / ID de l'artefact / URI Description


ElasticSearch / camel-elasticsearch Utilise le Bean Binding pour lier des changes de messages aux
EJB. Il fonctionne comme le composant Bean, pour accder aux
elasticsearch://clusterName[?options] EJB. Supporte les EJB partir de la version 3.0.
Spring Event / camel-spring Fonctionne avec Spring ApplicationEvents.

event://default, spring-event://default
Exec / camel-exec Permet d'excuter des commandes systme.

exec://executable[?options]
Facebook / camel-facebook Fournit l'accs toutes les API Facebook accessibles via
Facebook4J.
facebook://endpoint[?options]
File / camel-core Envoie des messages dans un fichier ou interroge un fichier ou un
rpertoire.
file://nameOfFileOrDirectory
Flatpack / camel-flatpack Traite des fichiers taille fixe ou dlimits l'aide de la
bibliothque FlatPack library.
flatpack:[fixed|delim]:configFile
FOP / camel-fop Convertit le message en diffrents formats de sortie l'aide de
Apache FOP.
fop:outputFormat[?options]
FreeMarker / camel-freemarker Gnre une rponse l'aide d'un modle Freemarker.

freemarker:someTemplateResource
FTP / camel-ftp Envoie et reoit des fichiers via FTP.

ftp:contextPath[?options]
FTPS / camel-ftp Envoie et reoit des fichiers via FTP Secure (TLS et SSL).

ftps://[username@]hostName[:port]/directoryName[?
options]
Geocoder / camel-geocoder Supporte le gocodage pour une adresse, ou, l'inverse, permet
de retrouver une adresse partir de ses coordonnes.
geocoder:address|latlng:latitude,longitude>[?
options]
Google Guava EventBus / camel-guava-eventbus Le Google Guava EventBus permet une communication de type
publication-souscription entre des composants sans ncessiter que
guava-eventbus:busName[?options] ces composants connaissent la prsence de l'autre. Ce composant
permet l'intgration entre Camel et l'infrastructure de Google
Guava EventBus.
HBase / camel-hbase Permet de lire/crire depuis/dans HBase (base de donnes
Hadoop).
hbase://table[?options]
HDFS / camel-hdfs Permet de lire/crire depuis/dans un systme de fichiers distribu
HDFS via Hadoop 1.x.
hdfs://hostName[:port][/path][?options]
HDFS / camel-hdfs2 Permet de lire/crire depuis/dans un systme de fichiers distribu
HDFS via Hadoop 2.x.
hdfs2://hostName[:port][/path][?options]
HL7 / camel-hl7 Permet de travailler avec le protocole HL7 MLLP et le modle
HL7 l'aide de la bibliothque HAPI.
mina:tcp://hostname[:port]
HTTP4 / camel-http4 Permet d'appeler des serveurs HTTP externes l'aide d'Apache
HTTP Client 4.x.
http4://hostname[:port]
IMAP / camel-mail Reoit des e-mails l'aide d'IMap.

imap://hostname[:port]
Infinispan / camel-infinispan Permet de lire/crire depuis/dans un magasin de cl/valeur et de
grille de donnes distribus Infinispan.
infinispan://hostName[?options]

Guide de rfrence des Composants Mediation de Talend ESB 105


Composants Camel les plus utiliss

Composant / ID de l'artefact / URI Description


Jasypt / camel-jasypt Simplifie la vole la bibliothque de cryptage, intgre dans
Camel.
jasypt: uri
JCR / camel-jcr Stocke un message dans un rfrentiel de type JCR (JSR-170), tel
que Apache Jackrabbit.
jcr://user:password@repository/path/to/node
JDBC / camel-jdbc Permet d'effectuer des requtes et des oprations JDBC.

jdbc:dataSourceName?options
Jetty / camel-jetty Permet d'exposer des services sur HTTP.

jetty:url
JGroups / camel-jgroups Le composant jgroups: fournit des changes de messages entre
une infrastructure Camel et des clusters JGroups.
jgroups:clusterName[?options]
JMS / camel-jms Fonctionne avec des fournisseurs JMS.

jms:[topic:]destinationName
JMX / camel-jmx Permet de travailler avec des vrificateurs (listeners) de
notifications JMX.
jmx://platform?options
JPA / camel-jpa Permet d'utiliser une base de donnes comme file d'attente via la
spcification JPA, afin de fonctionner avec OpenJPA, Hibernate
jpa://entityName oo TopLink.
Jsch / camel-jsch Support du protocole SCP.

scp://localhost/destination
Kafka / camel-kafka Permet de produire ou de consommer des brokers de messages
provenant de Apache Kafka.
kafka://server:port[?options]
Krati / camel-krati Permet de produire ou de consommer dans les datastores Krati.

krati://[path to datastore/][?options]
Log / camel-core Utilise Jakarta Commons Logging afin d'enregistrer l'change de
messages dans un systme de log sous-jacent, tel que log4j.
log:loggingCategory[?level=ERROR]
Lucene / camel-lucene Utilise Apache Lucene pour effectuer une indexation et des
recherches plein texte bases Java l'aide de fonctionnalits
lucene:searcherName:insert [?analyzer=<analyzer>] d'analyse avance et de segmentation.

MINA2 / camel-mina2 Fonctionne avec Apache MINA 2.x.

mina2:[tcp|udp|vm]:host[:port][?options]
Mock / camel-core Teste des Routes et des rgles de mdiation l'aide de mocks.

mock:name
MongoDB / camel-mongodb Interagit avec les bases de donnes et collections MongoDB.
Fournit des endpoints producteur afin d'effectuer, entre autres, des
mongodb:connectionBean[?options] oprations de type CRUD sur les bases de donnes et collections.
Il fournit galement des endpoints consommateurs permettant
d'couter et de rpartir des objets dans des routes Camel.
MQTT / camel-mqtt Ce composant permet de communiquer avec les brokers de
messages MQTT.
mqtt:name[?options]
Mustache / camel-mustache Gnre une rponse l'aide d'un modle Mustache.

mustache:templateName[?options]
MyBatis / camel-mybatis Excute une requte, interroge, insre, met jour ou supprime
dans une base de donnes relationnelle, l'aide de MyBatis.
mybatis://statementName
Netty / camel-netty-http Serveur et client HTTP Netty utilisant le projet Netty.

106 Guide de rfrence des Composants Mediation de Talend ESB


Composants Camel les plus utiliss

Composant / ID de l'artefact / URI Description


netty-http:http:[port]/context-path[?options]
OptaPlanner / camel-optaplanner Permet de rsoudre les problmes de planning contenus dans un
message avec OptaPlanner.
optaplanner:solverConfig[?options]
POP3 / camel-mail Permet de recevoir des e-mails l'aide de POP3 et JavaMail.

pop3://user-info@host:port
Properties / camel-core Le composant "Properties" simplifie l'utilisation de paramtres
factices directement dans la dfinition des URIs des endpoints.
properties://key[?options]
Quartz / camel-quartz Livre des messages de manire planifie, l'aide de Quartz
scheduler.
quartz://groupName/timerName
Quartz2 / camel-quartz2 Fournit une livraison programme des messages l'aide de
l'ordonnanceur Quartz 2.x scheduler.
quartz2://groupName/timerName[?options]
RabbitMQ / camel-rabbitmq Ce composant permet une intgration avec RabbitMQ.

rabbitmq://hostname[:port]/exchangeName[?options]
Ref / camel-core Composant permettant de rfrencer des endpoints existants lis
dans le Registry Camel.
ref:name
RMI / camel-rmi Fonctionne avec RMI.

rmi://host[:port]
RSS / camel-rss Fonctionne avec ROME pour l'intgration RSS, notamment la
consommation d'un flux RSS.
rss:uri
Salesforce / camel-salesforce Permet l'intgration avec Salesforce.

salesforce:topic[?options]
SAP NetWeaver / camel-sap-netweaver Permet l'intgration avec SAP NetWeaver Gateway.

sap-netweaver:hostName[:port][?options]
SEDA / camel-core Appel asynchrone d'un autre endpoint dans le mme Contexte
Camel.
seda:name
SERVLET / camel-servlet Expose des services sur HTTP via la servlet dploye dans le
conteneur Web.
servlet:uri
SJMS / camel-sjms Implmentation d'un client JMS.

sjms:[queue:|topic:]destinationName[?options]
SFTP / camel-ftp Envoie et reoit des fichiers via SFTP (FTP sur SSH).

sftp://host[:port]/fileName
SMTP / camel-mail Envoie des e-mails l'aide de SMTP et JavaMail.

smtp://user-info@host[:port]
SMPP / camel-smpp Envoie et reoit des SMS l'aide du Centre de messages courts
(Short Messaging Service Center) via la bibliothque JSMPP
smpp://user-info@host[:port]?options library.
SNMP / camel-snmp Interroge des valeurs OID et reoit des traps l'aide de SNMP via
la bibliothque SNMP4J.
snmp://host[:port]?options
Solr / camel-solr Utilise l'API client Solrj pour communiquer avec un serveur
Apache Lucene Solr.
solr://hostName[:port]/solr[?options]
Splunk / camel-splunk Permet de travailler avec Splunk.

splunk://[endpoint]?[options]

Guide de rfrence des Composants Mediation de Talend ESB 107


Composants Camel les plus utiliss

Composant / ID de l'artefact / URI Description


SpringBatch / camel-spring-batch Permet de relier Camel et Spring Batch.

spring-batch:jobName[?options]
SpringIntegration / camel-spring-integration Composant passerelle entre Camel et Spring Integration.

spring-integration: defaultChannelName
Spring LDAP / camel-spring-ldap Wrapper Camel pour Spring LDAP.

spring-ldap:springLdapTemplateBean[?options]
Spring Redis / camel-spring-redis Composant permettant de consommer et produire depuis le
stockage cl-valeur Redis.
spring-redis://hostName:port[?options]
Spring Web Services / camel-spring-ws Support client pour accder aux services Web et support serveur
pour crer vos propres services Web "contract-first" l'aide de
spring-ws:[mapping-type:]address[?options] Spring Web Services.
SQL / camel-sql Effectue des requtes SQL l'aide de JDBC.

sql:select * from table where id=#


SSH / camel-ssh Permet d'envoyer des commandes un serveur SSH.

ssh:[username[:password]@]host [:port][?options]
StAX / camel-stax Traite des messages via messages SAX ContentHandler.

stax:(contentHandlerClassName|#myHandler)
Stomp / camel-stomp Permet de communiquer avec des brokers de messages conformes
Stomp, comme Apache ActiveMQ ou ActiveMQ Apollo.
stomp:queue:destinationName[?options]
Stub / camel-core Permet de simuler un endpoint middleware physique pour
simplifier les tests et dbogages.
stub:someOtherCamelUri
Test / camel-spring Cre un endpoint Mock attendant de recevoir tous les corps des
messages pouvant tre consults partir de l'endpoint sous-jacent.
test:expectedMessagesEndpointUri
Timer / camel-core Endpoint du minuteur.

timer://name
Twitter / camel-twitter Un endpoint Twitter.

twitter://endpoint[?options]
Velocity / camel-velocity Gnre une rponse l'aide d'un modle Apache Velocity.

velocity:someTemplateResource
Vertx / camel-vertx Permet de travailler avec le Bus d'vnements Vertx.

vertx:eventBusName
VM / camel-core Appel asynchrone d'un autre endpoint dans la mme JVM.

vm:name
Weather / camel-weather Rcupre des informations mtorologiques de Open Weather
Map.
weather://name[?options]
Websocket / camel-websocket Permet de communiquer avec des clients Websocket.

websocket://hostname[:port][/resourceUri][?
options]
XQuery / camel-saxon Gnre une rponse l'aide d'un modle XQuery.

xquery:someXQueryResource
XSLT / camel-spring Gnre une rponse l'aide d'un modle XSLT.

xslt:someTemplateResource

108 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Dplacer des fichiers d'un endpoint de message un autre

Composant / ID de l'artefact / URI Description


Yammer / camel-yammer Permet d'interagir avec le rseau social d'entreprise Yammer.

yammer://function[?options]
Zookeeper / camel-zookeeper Fonctionne avec le(s) cluster(s) ZooKeeper.

zookeeper://zookeeperServer[:port][/path][?
options]

Scnario 1 : Dplacer des fichiers d'un endpoint de


message un autre
Ce scnario utilise deux composants cMessagingEndpoint afin de lire et de dplacer des fichiers d'un endpoint
un autre.

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Messaging et dposez deux composants cMessagingEndpoint dans
l'espace de modlisation graphique. L'un sera l'metteur, l'autre le destinataire. Nommez-les respectivement
Sender et Receiver pour mieux percevoir leur rle dans la Route.

2. Cliquez-droit sur le premier composant, slectionnez Row > Route dans le menu et glissez vers le second
composant afin de les relier avec un lien Route.

Configurer les composants et les connexions


1. Double-cliquez sur le premier composant d'endpoint pour afficher sa vue Component.

2. Dans le champ URI, saisissez l'URI des messages que vous souhaitez router.

Comme vous grez des fichiers, saisissez "file:///" ainsi que le chemin d'accs au dossier contenant les fichiers.

3. Double-cliquez sur le second composant d'endpoint pour afficher sa vue Component.

4. Dans le champ URI, saisissez l'URI du dossier vers lequel vous souhaitez router votre message.

Guide de rfrence des Composants Mediation de Talend ESB 109


Scnario 2 : Envoyer des fichiers vers un autre endpoint de message

Comme vous grez des fichiers, saisissez "file:/" ainsi que le chemin d'accs au dossier dans lequel les fichiers
seront envoys.

5. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Voir le code et excuter la Route


1. Pour visualiser le code gnr, cliquez sur l'onglet Code au bas de l'espace de modlisation graphique.

Le code affiche le from et le .to correspondants aux deux endpoints ; from pour l'endpoint metteur et .to
pour l'endpoint rcepteur.

2. Dans la vue Run, cliquez sur le bouton Run pour lancer l'excution de votre Route.

Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les fichiers sont dplacs de leur dossier original vers le dossier cible. De plus, un nouveau dossier
.camel est cr dans le dossier source contenant les fichiers consomms. C'est le comportement de Camel
par dfaut. Ainsi, les fichiers ne seront pas traits indfiniment mais seront sauvegards en cas de problme.

Scnario 2 : Envoyer des fichiers vers un autre


endpoint de message
Ce scnario permet d'accder un service FTP et de transfrer des fichiers d'un endpoint un autre.

110 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Envoyer des fichiers vers un autre endpoint de message

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Messaging et slectionnez le composant cMessagingEndpoint puis
glissez-en deux dans l'espace de modlisation graphique. Nommez-les respectivement Sender et Receiver.

2. Cliquez-droit sur le premier composant, slectionnez Row > Route dans le menu et glissez vers le second
composant afin de les relier par un lien Route.

Configurer les composants et les connexions


1. Double-cliquez sur le composant nomm Sender pour afficher sa vue Component.

2. Dans le champ URI, saisissez l'URI du message que vous souhaitez router.

Ici, utilisez un composant FTP : ftp://indus@degas/remy/camel avec des paramtres d'URI spcifiques
permettant l'authentification de la connexion FTP : ?username=indus&password=indus.

3. Pour que le composant FTP fonctionne dans Camel, cliquez sur l'onglet Advanced settings du composant
cMessagingEndpoint, cliquez sur le bouton [+] pour ajouter un composant Camel dans la table
Dependencies et slectionnez ftp dans la liste Camel component pour activer le composant FTP.

4. Double-cliquez sur le composant nomm Receiver pour afficher sa vue Component.

5. Dans le champ URI, saisissez l'URI du dossier vers lequel vous souhaitez que votre message soit rout.

Comme vous grez des fichiers, saisissez "file:/" ainsi que le chemin d'accs au dossier dans lequel les fichier
seront envoys.

Guide de rfrence des Composants Mediation de Talend ESB 111


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

6. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Pour visualiser le code gnr, cliquez sur l'onglet Code au bas de l'espace de modlisation graphique.

Dans cette partie du code, vous pouvez voir une route reprsente par le from et le .to, correspondants aux
endpoints metteur et rcepteur.

2. Dans la vue Run, cliquez sur le bouton Run pour lancer l'excution de votre Route.

Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le message est envoy (copi) l'endpoint rcepteur.

Scnario 3 : Utiliser un endpoint Xquery pour filtrer


des messages
Dans ce scnario, utilisez un composant cMessagingEndpoint pour appeler une ressource de Route comme un
analyseur Xquery pour extraire des messages d'un systme de fichiers local.

Voici un extrait du fichier XML utilis dans ce scnario :

112 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

<people>
<person id="8">
<firstName>Ellen</firstName>
<lastName>Ripley</lastName>
<city>Washington</city>
</person>
<person id="9">
<firstName>Peter</firstName>
<lastName>Green</lastName>
<city>London</city>
</person>
</people>

Crer une ressource de Route


1. Dans la vue Repository, cliquez-droit sur le nud Resources et slectionnez Create Resource dans le menu
contextuel.

2. L'assistant [New Route Resource] s'ouvre. Dans le champ Name, saisissez un nom pour la ressource, par
exemple, SampleXquery. Cliquez sur Finish pour fermer l'assistant.

Guide de rfrence des Composants Mediation de Talend ESB 113


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

3. Saisissez le code suivant dans l'diteur afin d'extraire le prnom (firstName) et le nom de famille (lastName)
de tous les lments person.

declare namespace ns0="http://com.sap/b";


<people>
{
for $p in /people//person
return
<person>
<firstName>{$p/firstName/text()}</firstName>
<lastName>{$p/lastName/text()}</lastName>
</person>
}
</people>

4. Appuyez sur les touches Ctrl+S pour sauvegarder votre ressource de Route.

114 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

Dposer et relier les composants

1. Depuis le dossier Messaging de la Palette, glissez-dposez un composant cFile et un cMessagingEndpoint


dans l'espace de modlisation graphique.

2. Du dossier Processor, glissez-dposez un cProcessor dans l'espace de modlisation graphique.

3. Reliez les composants l'aide de liens Row > Route comme dans la capture d'cran.

4. Renommez les composants afin de mieux identifier leur rle dans la Route.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile pour ouvrir sa vue Basic settings.

2. Dans le champ Path, spcifiez le chemin d'accs au fichier source people.xml.

3. Cliquez-droit sur la Route dans la vue Repository et slectionnez Manage Route Resources dans le menu
contextuel.

Guide de rfrence des Composants Mediation de Talend ESB 115


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

L'assistant [Manage Route Resources] s'ouvre.

4. Dans l'assistant [Manage Route Resources], cliquez sur Add et slectionnez SampleXquery dans la vue des
ressources. Cliquez sur OK.

116 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

La ressource de Route SampleXquery est ajoute la table, dans l'assistant [Manage Route Resources].

5. Slectionnez SampleXquery dans la liste des ressources de Route puis cliquez sur Copy Path. Cliquez sur
OK pour fermer l'assistant.

6. Double-cliquez sur le composant cMessagingEndpoint pour afficher sa vue Basic settings.

7. Dans le champ URI, saisissez xquery: et collez entre guillemets doubles le chemin de la ressource de Route
SampleXquery copi prcdemment.

8. Cliquez sur l'onglet Advanced settings, ajoutez le composant Camel saxon dans la liste Dependencies.
Pour plus d'informations concernant Xquery, consultez le site Web d'Apache Camel (en anglais) : http://
camel.apache.org/xquery-endpoint.html.

Guide de rfrence des Composants Mediation de Talend ESB 117


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

9. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

10. Dans la zone Code, saisissez le code suivant pour afficher les messages intercepts dans la console :

System.out.println(exchange.getIn().getBody(String.class));

11. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Pour visualiser le code gnr, cliquez sur l'onglet Code au bas de l'espace de modlisation graphique.

118 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 3 : Utiliser un endpoint Xquery pour filtrer des messages

Comme affich dans le code ci-dessus, le message est rout depuis (from) le composant
Message_source_cFile_1 vers (.to) le cMessagingEndpoint_1 et est trait par le composant
cProcessor_1.

2. Dans la vue Run, cliquez sur le bouton Run pour lancer l'excution de votre Route. Vous pouvez galement
appuyer sur F6 pour l'excuter.

Rsultat : Le prnom (firstName) et le nom de famille (lastName) de tous les lments person du fichier
source sont affichs dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 119


cMQTT

cMQTT

Proprits du cMQTT
Famille de composant Messaging
Fonction Le composant cMQTT envoie des messages , ou consomme des messages provenant de brokers de
messages compatibles MQTT.
Objectif Le cMQTT est utilis pour communiquer avec des brokers de messages compatibles MQTT.
Basic settings ConnectionFactory Cette option est disponible lorsque l'option Use Connection Factory
est slectionne. Cliquez sur le bouton [...] et slectionnez une
ConnectionFactory utiliser pour grer les messages.
Topic Name Saisissez un nom pour le sujet du message dans le broker de
messages.
Advanced settings Parameters Configurez les paramtres facultatifs dans la table. Cliquez sur le
bouton [+] autant de fois que ncessaire pour ajouter les paramtres
la table. Cliquez dans le champ Value que vous souhaitez
modifier et saisissez une valeur. Consultez le site Web http://
camel.apache.org/amqp.html (en anglais) pour en savoir plus sur les
options disponibles.
Utilisation Le composant cMQTT peut tre un composant de dbut, de milieu ou de fin, dans une Route. Il doit tre
utilis avec le composant cMQConnectionFactory, crant une connexion un serveur MQ. Pour plus
d'informations concernant le cMQConnectionFactory, consultez cMQConnectionFactory.
Limitation Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant ne
sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install dans la
vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section concernant la
configuration du studio dans le Guide d'installation et de migration Talend.

Scnario : Envoyer des messages et recevoir des


messages d'un broker MQTT
Ce scnario vous explique comment utiliser le composant cMQTT afin d'envoyer des messages un broker
MQTT et consommer des messages de ce broker. Pour ce faire, deux Routes sont construites, une Route produisant
le message et une Route consommant le message. Les messages sont envoys au broker MQTT dans la Route
productrice et sont consomms dans la Route consommatrice.

Dans ce scnario, Apache ActiveMQ est utilis comme broker de message supportant le protocole MQTT. Vous
devez lancer le serveur ActiveMQ avant d'excuter la Route. Pour plus d'informations concernant l'installation et
le lancement du serveur ActiveMQ, consultez le site http://activemq.apache.org/index.html (en anglais).

120 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

Construire la Route productrice

Dposer et relier les composants

1. De la Palette, glissez-dposez un composant cMQConnectionFactory, un cTimer, a cSetBody, un cMQTT


et un cLog dans l'espace de modlisation graphique.

2. Renommez les composants afin de mieux identifier leur rle au sein de la Route et reliez-les l'aide d'un lien
Row > Route, comme dans la capture d'cran.

Configurer les composants


1. Double-cliquez sur le cMQConnectionFactory pour afficher sa vue Basic settings.

2. Dans la liste MQ Server, slectionnez MQTT pour grer les messages.

Dans le champ Host Name, laissez la valeur par dfaut "127.0.0.1" puisque le serveur local ActiveMQ est
utilis comme broker de messages dans cet exemple.

Dans le champ Port, laissez la valeur par dfaut 1883.

Laissez galement les autres paramtres par dfaut.

3. Double-cliquez sur le cTimer pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 121


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

4. Dans le champ Repeat, saisissez 5 pour gnrer cinq fois l'change de messages. Laissez les autres paramtres
par dfaut.

5. Double-cliquez sur le composant cSetBody pour ouvrir sa vue Basic settings.

6. Slectionnez SIMPLE dans la liste Language et saisissez "Hello world" dans le champ Expression,
comme corps du message.

7. Double-cliquez sur le cMQTT pour ouvrir sa vue Basic settings.

8. Dans le champ Use ConnectionFactory, cliquez sur le bouton [...] et slectionnez la ConnectionFactory MQ
configure pour grer les messages.

Dans le champ Topic Name, saisissez un nom pour le sujet, par exemple "mytopic".

9. Laissez les paramtres par dfaut dans le cLog pour enregistrer les changes de messages.

122 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

10. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Route.

Visualiser le code
Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich ci-dessus, le flux de messages du cTimer_1 se voit attribuer un payload par le cSetBody_1
et est envoy au cMQTT_1 et au cLog_1.

Construire la Route consommatrice

Dposer et relier les composants

1. De la Palette, glissez-dposez un cMQConnectionFactory, un cMQTT et un cLog dans l'espace de


modlisation graphique.

2. Renommez les composants afin de mieux identifier leur rle au sein de la Route et reliez-les l'aide d'un lien
Row > Route, comme dans la capture d'cran.

Configurer les composants


1. Double-cliquez sur le cMQConnectionFactory pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 123


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

2. Configurez le composant cMQConnectionFactory comme dans la Route productrice afin de vous connecter
au mme broker MQTT.

3. Double-cliquez sur le composant cMQTT pour afficher sa vue Basic settings.

4. Dans le champ ConnectionFactory, cliquez sur [...] et slectionnez la ConnectionFactory MQ configure,


pour grer les messages.

Dans le champ Topic Name, saisissez le mme nom que dans la Route productrice.

5. Laissez les paramtres par dfaut dans le composant cLog, pour enregistrer les changes de messages.

124 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

6. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme montr ci-dessus, le flux de messages est rout du cMQTT_1 au cLog_1.

2. Appuyez sur F6 pour excuter la Route. Dans la console d'excution, vous pouvez constater qu'il n'y a aucun
change de messages.

3. Excutez la Route productrice. Les logs des changes de messages sont affichs dans la console.

Guide de rfrence des Composants Mediation de Talend ESB 125


Scnario : Envoyer des messages et recevoir des messages d'un broker MQTT

4. Dans la Route consommatrice, les messages sont consomms et affichs dans la console d'excution.

5. Dans la console Web ActiveMQ, vous pouvez constater que le sujet mytopic a bien t cr et que les messages
sont consomms.

126 Guide de rfrence des Composants Mediation de Talend ESB


cSEDA

cSEDA

Proprits du cSEDA
Famille de composant Messaging
Fonction Le composant cSEDA permet d'changer, de manire asynchrone, des messages dans une file
BlockingQueue et d'invoquer les consommateurs dans un process spar du producteur, dans un
seul CamelContext.
Objectif Le cSEDA vous permet de produire et consommer des messages de manire asynchrone dans
diffrents process dans un CamelContext.
Basic settings Lorsque vous utilisez ce composant en tant que composant de dbut dans une Route :
Name Saisissez une chane de caractres identifiant uniquement
l'endpoint.
Specify maximum capacity Cochez cette case pour configurer le nombre maximum de
size messages pouvant tre contenus dans la file SEDA. Spcifiez le
nombre dans le champ Size.
Concurrent consumers Spcifiez le nombre de process simultans traitant les changes.
Wait for task to complete Spcifiez si l'appelant doit attendre que la tche asynchrone soit
termine ou non avant de continuer. Slectionnez Always, Never
ou IfReplyExpected. L'option par dfaut est IfReplyExpected,
ce qui signifie que l'appelant attend uniquement si le message est
de type Request-Reply. Pour plus d'informations concernant cette
option, consultez le site Web http://camel.apache.org/async.html
(en anglais).
Timeout Spcifiez, en millisecondes, la priode avant qu'un producteur
SEDA arrte d'attendre qu'une tche asynchrone soit termine.
Vous pouvez dsactiver cette option en utilisant 0 ou une valeur
ngative.
Use multiple consumers Spcifie si de multiples consommateurs sont autoriss. Si activ,
vous pouvez utiliser le cVM pour un messaging de type Publish-
Subscribe, ce qui signifie que vous pouvez envoyer un message
dans la file SEDA et faire en sorte que chaque consommateur
reoive une copie du message. Lorsque cette option est active,
elle doit tre spcifie sur chaque endpoint de consommateur.
Limit concurrent consumers Cette option permet de limiter le nombre de consommateurs
simultans 500 maximum. Par dfaut, une exception est
retourne si un endpoint SEDA est configur avec un nombre
suprieur.
Block when full Cette option permet un process envoyant un message une file
SEDA complte de bloquer la file jusqu' ce que la capacit de
la file soit dbloque. Par dfaut, une exception est retourne,
indiquant que la file est pleine. En activant cette option, le process
d'appel bloque et attend jusqu' ce que le message soit accept.
Poll timeout Spcifiez, en millisecondes, le dlai avant suspension, utilis
lors de l'attente active. Lorsqu'une suspension se produit,
le consommateur peut vrifier s'il est possible de continuer
l'excution. Paramtrer une valeur peu leve permet au
consommateur de ragir plus rapidement en cas de dconnexion.
Lorsque vous utilisez ce composant en tant que composant intermdiaire ou de fin dans une
Route :
Use Exist cSEDA Cliquez sur le bouton [...] pour slectionner le consommateur
correspondant dans la bote de dialogue.

Guide de rfrence des Composants Mediation de Talend ESB 127


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

Advanced settings Arguments Cette option est disponible uniquement lorsque le cSEDA
est utilis en tant que composant de dbut dans une Route.
Configurez les arguments facultatifs dans la table correspondante.
Cliquez sur le bouton [+] autant de fois que ncessaire afin
d'ajouter des arguments dans la table. Cliquez dans le champ
Value et saisissez une valeur. Consultez le site Web http://
camel.apache.org/seda.html pour plus d'informations concernant
les options disponibles.
Utilisation Le composant cSEDA peut tre utilis comme composant de dbut, de fin ou comme composant
intermdiaire dans une Route.

Scnario : Utiliser les composants cSEDA, cVM et


cDirect pour produire et consommer sparment des
messages
Dans ce scnario, utilisez un composant cTimer pour dclencher un change de messages. Le message est rout
vers un cSEDA, un cVM et un cDirect squentiellement, avec un corps de message dfini pour chacun d'entre
eux, consomm dans un autre process.

Vous allez crer une ressource de Route afin de dfinir le nombre d'envois de l'change de messages, utilise par
le composant cTimer.

Crer une ressource de Route et l'appeler dans la Route


1. Dans la vue Repository, cliquez-droit sur le nud Resources et slectionnez Create Resource dans le menu
contextuel.

2. L'assistant [New Route Resource] s'ouvre. Dans le champ Name, saisissez un nom pour la ressource, par
exemple SetRepeatCount. Cliquez sur Finish pour fermer l'assistant.

128 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

3. Saisissez repeat.count=2 dans l'espace de modlisation graphique afin de configurer le nombre d'envois
de l'change de messages.

4. Appuyez sur Ctrl+S pour sauvegarder la ressource de Route.

5. Cliquez-droit sur la Route dans la vue Repository et slectionnez Manage Route Resources dans le menu
contextuel.

Guide de rfrence des Composants Mediation de Talend ESB 129


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

L'assistant [Manage Route Resources] s'ouvre.

6. Cliquez sur Add et slectionnez SetRepeatCount dans la vue Resources de la bote de dialogue. Cliquez
sur OK.

130 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

La ressource de Route SetRepeatCount est ajoute la table.

7. Cliquez sur OK pour fermer l'assistant.

Pour plus d'informations concernant la cration et l'utilisation de ressources de Route, consultez le Guide
utilisateur du Studio Talend.

8. Cliquez sur l'onglet Spring dans la partie infrieure de l'espace de modlisation graphique de la Route.

Guide de rfrence des Composants Mediation de Talend ESB 131


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

9. Saisissez le code suivant dans cette vue, pour appeler la ressource de Route que vous avez cr.

<bean id="properties"
class="org.apache.camel.component.properties.PropertiesComponent">
<property name="location" value="classpath:SetRepeatCount.properties"/>
</bean>

Pour plus d'informations concernant l'utilisation de la Configuration Spring dans une Route, consultez le
Guide utilisateur du Studio Talend.

Dposer et relier les composants

1. De la Palette, dposez un cTimer, deux cSEDA, deux cVM, deux cDirect, trois cSetbody et trois
composants cLog dans l'espace de modlisation graphique.

2. Reliez les composants l'aide de liens Row > Route.

3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.

132 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

Configurer les composants et les connexions


1. Double-cliquez sur le composant Starter dans l'espace de modlisation graphique afin d'afficher sa vue Basic
settings.

2. Dans le champ Repeat, saisissez "{{repeat.count}}", dfini dans la ressource de Route.

3. Double-cliquez sur le composant Set_body_SEDA dans l'espace de modlisation graphique pour afficher sa
vue Basic settings.

4. Slectionnez SIMPLE dans la liste Language.

Dans le champ Expression, saisissez "to cSEDA" comme corps de message.

Rptez cette tape afin de dfinir le corps de message dans le Set_body_VM et le Set_body_Direct en tant
que "to cVM" et "to cDirect", respectivement.

Set_body_VM :

Set_body_Direct :

Guide de rfrence des Composants Mediation de Talend ESB 133


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

5. Double-cliquez sur le composant SEDA_producer pour afficher sa vue Basic settings.

6. Cliquez sur le bouton [...] et slectionnez SEDA_consumer dans l'assistant [Select a Node:], ce qui va
consommer le message envoy au SEDA_producer.

Rptez cette tape afin de slectionner le nud VM_consumer pour VM_producer.

Slectionnez le nud Direct_consumer pour VM_producer.

134 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

7. Double-cliquez sur le composant SEDA_consumer pour afficher sa vue Basic settings.

8. Dans le champ Name, saisissez "seda" pour identifier cet endpoint. Laissez les paramtres par dfaut pour
les autres options.

Rptez cette tape pour renommer en "vm" le VM_consumer.

Renommez en "direct" le Direct_consumer.

Guide de rfrence des Composants Mediation de Talend ESB 135


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

9. Double-cliquez sur le composant Monitor_SEDA pour afficher sa vue Basic settings.

10. Slectionnez INFO dans la liste Level et slectionnez Specify output log message. Dans le champ Message,
saisissez "log cSEDA:${body}" afin d'afficher le corps du message dans la console.

Rptez cette tape pour spcifier le message de sortie pour Monitor_VM et Monitor_Direct. Saisissez "log
cVM:${body}" et "log cDirect:${body}", respectivement.

11. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

136 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et consommer sparment des messages

Comme affich dans le code, une Route de message est construite depuis (from) le "Starter_cTimer_1",
configure le corps du message "to cSEDA" par le "cSetBody_1" et l'envoie au cSEDA_2, mapp au
"SEDA_consumer_cSEDA_1". Le message est alors envoy au cVM_2, cDirect_2, mapp au consommateur
correspondant, avec un nouveau corps de message. Du ct consommateur, le corps du message depuis (from)
chaque consommateur est enregistr par le moniteur correspondant.

2. Cliquez sur la vue Run pour l'afficher puis cliquez sur le bouton Run pour lancer l'excution de la Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le message envoy au SEDA_producer, au VM_producer et au Direct_producer est consomm


par le composant SEDA_consumer, le composant VM_consumer et le composant Direct_consumer,
respectivement. L'change de messages est dclench deux fois, comme dfini dans la ressource de la Route
SetRepeatCount.

Guide de rfrence des Composants Mediation de Talend ESB 137


cTimer

cTimer

Proprits du cTimer
Famille de composant Messaging
Fonction Le composant cTimer gnre des changes de messages qu'un minuteur dclenche.
Objectif Le cTimer vous permet de planifier des changes de messages.
Basic settings Period Renseignez ce champ en saisissant un nombre entier (une priode
en millisecondes) afin de gnrer des changes de messages de
faon rgulire.
Repeat Spcifiez le nombre maximal d'changes de messages. Si vous
saisissez zro ou une valeur ngative, les changes de messages
sont gnrs l'infini.
Delay Saisissez le nombre de millisecondes attendre avant de gnrer le
premier change de messages. Cette option ne doit pas tre utilise
avec l'option Set Schedule Time.
Fixed Rate Cochez cette case pour gnrer les changes de messages
intervalles rguliers, spars par la priode de temps spcifie.
Daemon Spcifiez si l'change de messages associ l'endpoint du minuteur
s'excute en arrire-plan.
Set Schedule Time Cochez cette case afin de spcifier le moment auquel le premier
change de messages doit tre gnr. Dans le champ Time,
saisissez la date en utilisant le modle yyyy-MM-dd HH:mm:ss ou
yyyy-MM-dd'T'HH:mm:ss.
Utilisation Le cTimer peut tre utilis uniquement comme composant de dbut dans une Route.
Limitation n/a

Scnario associ
Pour un scnario associ, consultez Scnario : Utiliser le cDataset pour recevoir des messages.

138 Guide de rfrence des Composants Mediation de Talend ESB


cVM

cVM

Proprits du cVM
Famille de composant Messaging
Fonction Le composant cVM permet d'changer, de manire asynchrone, des messages dans une file
BlockingQueue et d'invoquer les consommateurs dans un process spar du producteur, dans
des instances CamelContext.
Objectif Le cVM vous permet de produire et de consommer les messages de manire asynchrone dans
diffrents process dans le CamelContext. Vous pouvez utiliser ce mcanisme pour communiquer
travers les applications Web.
Basic settings Lorsque vous utilisez en tant que composant de dbut dans une Route :
Name Saisissez une chane de caractres identifiant uniquement
l'endpoint.
Specify maximum capacity Cochez cette case pour configurer le nombre maximum de
size messages pouvant tre contenus dans la file SEDA. Spcifiez le
nombre dans le champ Size.
Concurrent consumers Spcifiez le nombre de process simultans traitant les changes.
Wait for task to complete Spcifiez si l'appelant doit attendre que la tche asynchrone soit
termine ou non avant de continuer. Slectionnez Always, Never
ou IfReplyExpected. L'option par dfaut est IfReplyExpected,
ce qui signifie que l'appelant attend uniquement si le message est
de type Request-Reply. Pour plus d'informations concernant cette
option, consultez le site Web http://camel.apache.org/async.html
(en anglais).
Timeout Spcifiez, en millisecondes, la priode avant qu'un producteur
SEDA arrte d'attendre qu'une tche asynchrone soit termine.
Vous pouvez dsactiver cette option en utilisant 0 ou une valeur
ngative.
Use multiple consumers Spcifie si de multiples consommateurs sont autoriss. Si activ,
vous pouvez utiliser le cVM pour un messaging de type Publish-
Subscribe, ce qui signifie que vous pouvez envoyer un message
dans la file SEDA et faire en sorte que chaque consommateur
reoive une copie du message. Lorsque cette option est active,
elle doit tre spcifie sur chaque endpoint de consommateur.
Limit concurrent consumers Cette option permet de limiter le nombre de consommateurs
simultans 500 maximum. Par dfaut, une exception est
retourne si un endpoint SEDA est configur avec un nombre
suprieur.
Block when full Cette option permet un process envoyant un message une file
SEDA complte de bloquer la file jusqu' ce que la capacit de
la file soit dbloque. Par dfaut, une exception est retourne,
indiquant que la file est pleine. En activant cette option, le process
d'appel bloque et attend jusqu' ce que le message soit accept.
Poll timeout Spcifiez, en millisecondes, le dlai avant suspension, utilis
lors de l'attente active. Lorsqu'une suspension se produit,
le consommateur peut vrifier s'il est possible de continuer
l'excution. Paramtrer une valeur peu leve permet au
consommateur de ragir plus rapidement en cas de dconnexion.
Lorsque vous utilisez ce composant en tant que composant intermdiaire ou de fin dans une
Route :
Input endpoint name Cochez cette case pour saisir le nom du consommateur
correspondant dans le champ Name.

Guide de rfrence des Composants Mediation de Talend ESB 139


Scnario associ

Use Exist cVM Cette option apparat uniquement lorsque la case Input endpoint
name est dcoche. Cliquez sur le bouton [...] et slectionnez le
consommateur correspondant dans la bote de dialogue.
Name Cette option apparat lorsque la case Input endpoint name est
coche. Saisissez le nom du consommateur directement dans ce
champ.
Advanced settings Arguments Cette option est disponible uniquement lorsque le cVM est utilis
en tant que composant d'entre dans une Route. Configurez
les arguments facultatifs dans la table correspondante. Cliquez
sur le bouton [+] autant de fois que ncessaire pour ajouter
des arguments dans la table. Cliquez dans le champ Value
correspondant et saisissez une valeur. Consultez le site Web http://
camel.apache.org/vm.html pour plus d'informations concernant les
options disponibles.
Utilisation Le composant cVM peut tre utilis en tant que composant de dbut, de fin ou en tant que
composant intermdiaire dans une Route.

Scnario associ
Pour un scnario associ, consultez Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et
consommer sparment des messages.

140 Guide de rfrence des Composants Mediation de Talend ESB


Composants Miscellaneous
Ce chapitre passe en revue les principaux composants prsents dans le groupe Miscellaneous de la Palette, dans
la perspective Mediation du Studio Talend.

La famille Miscellaneous regroupe les composants couvrant des besoins spcifiques, comme l'itration d'une
Route ou l'arrt d'une Route.

Guide de rfrence des Composants Mediation de Talend ESB


cLog

cLog

Proprits du cLog
Famille de composant Miscellaneous
Fonction Le composant cLog enregistre des changes de messages dans le mcanisme sous-jacent de log. Apache
Camel fournit le Regular logger et le Throughput logger. Le premier permet d'enregistrer les logs de tous
les changes de messages et le second permet de paramtrer le nombre de messages que vous souhaitez
afficher. Par dfaut, Apache Camel enregistre les logs de tous les changes de messages.
Objectif Le cLog est utilis pour enregistrer des changes de messages.
Logging Category Saisissez le nom de la catgorie de log utiliser.
Level Slectionnez un niveau de log parmi DEBUG, ERROR, INFO,
OFF, TRACE et WARN.
Use default output log message Slectionnez cette option pour utiliser le message de log de sortie par
dfaut fourni par le mcanisme sous-jacent d'enregistrement de logs.
Options / None Slectionnez cette option pour n'effectuer aucune action sur le
message de log.
(Pour le message de log de sortie
par dfaut uniquement)
Options / Specifies a group size for Slectionnez cette option pour utiliser le Logger Throughput et
throughput logging spcifier la taille du groupe de messages afficher.

(Pour le message de log de sortie Size : Saisissez un nombre entier spcifiant la taille du groupe de
par dfaut uniquement) messages afficher.
Options / Group message stats by Slectionnez cette option pour utiliser le Logger Throughput et
time interval (in millis) regrouper les statistiques des messages.

(Pour le message de log de sortie Interval : Les statistiques des messages seront regroupes durant
par dfaut uniquement) l'intervalle de temps que vous spcifiez (en millisecondes).

Delay : Paramtrez le dlai initial (en millisecondes) pour les


statistiques des messages.
Options / Format the log output Slectionnez cette option afin de formater la sortie du log. Cliquez
sur le bouton [+] autant de fois que ncessaire pour ajouter des
(Pour le message de log de sortie arguments dans le tableau. Cliquez sur le champ value correspondant
par dfaut uniquement) au nom de l'argument et saisissez une valeur. Consultez le site http://
camel.apache.org/log.html (en anglais) pour les options disponibles.
Specify output log message Slectionnez cette option pour spcifier le message de log de sortie.

Message : Utilisez le langage Simple pour construire un message


dynamique qui sera enregistr dans le log.
Utilisation Le composant cLog est utilis en tant que composant intermdiaire ou de fin dans une Route.
Limitation n/a

Scnario associ
Pour un scnario associ, consultez Scnario : Router des messages selon un critre.

142 Guide de rfrence des Composants Mediation de Talend ESB


cLoop

cLoop

Proprits du cLoop
Famille de composant Miscellaneous
Fonction Le composant cLoop vous permet de traiter un ou des message(s) un certain nombre de fois et
ventuellement de manires diffrentes.
Objectif Le cLoop est utilis pour traiter un ou des message(s) de manire rptitive.
Basic settings Loop Type Slectionnez un type de boucle effectuer : Expression, Header,
ou Value.

Expression : Utilisez une expression pour dterminer le nombre


de boucles.

Header : Utilisez un en-tte pour dterminer le nombre de boucles.

Value : Utilisez un argument pour configurer le nombre de


boucles.
Lorsque vous utilisez Expression : Dans le champ Language,
slectionnez le langage de l'expression que vous souhaitez
utiliser pour dterminer le nombre de boucles parmi Constant,
EL, Groovy, Header, Javascript, JoSQL, JXPath, MVEL,
None, OGNL, PHP, Property, Python, Ruby, Simple, SpEL,
SQL, XPath, et XQuery. Saisissez l'expression dans le champ
Expression.

L'option Add Namespaces apparat lorsque XPath est slectionn


dans la liste Language. Cochez cette case pour ajouter des espaces
de noms pour l'expression Xpath. Cliquez sur le bouton [+] pour
ajouter autant d'espaces de noms que ncessaire dans la table et
dfinissez le prfixe et l'URI dans les colonnes correspondantes.
Lorsque vous utilisez Header : Saisissez dans le champ Header
le nom de l'en-tte que vous souhaitez utiliser pour dterminer le
nombre de boucles.
Lorsque vous utilisez Value : Saisissez dans le champ Value un
nombre entier que vous souhaitez dfinir comme tant le nombre
de boucles.
Utilisation Le cLoop peut tre utilis en tant que composant intermdiaire dans une Route.
Limitation n/a

Scnario associ
Aucun scnario n'est disponible pour ce composant pour le moment.

Guide de rfrence des Composants Mediation de Talend ESB 143


cStop

cStop

Proprits du cStop
Famille de Miscellaneous
composant
Fonction Le composant cStop arrte la Route laquelle il est connect.
Objectif Le cStop est utilis pour arrter le routage d'un message.
Utilisation Le cStop peut tre utilis comme composant intermdiaire ou comme composant de fin dans une Route.

Scnario associ
Pour un scnario associ, consultez Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle
route du composant cIntercept.

144 Guide de rfrence des Composants Mediation de Talend ESB


Composants Processor
Ce chapitre passe en revue les principaux composants prsents dans le groupe Processor de la Palette, dans la
perspective Mediation de Studio Talend.

La famille Processor regroupe les composants permettant d'effectuer tous types de tches de traitement des flux de
messages, comme le monitoring des messages envoys ou reus, la configuration du mode d'change de messages,
le contrle du temps de livraison, etc.

Guide de rfrence des Composants Mediation de Talend ESB


cBean

cBean

Proprits du cBean
Famille de composant Processing
Fonction Le composant cBean un bean Java stock dans le nud Code du Repository ou enregistr par
un cBeanRegister.
Objectif Le cBean vous permet d'invoquer un bean Java prdfini.
Basic settings Reference Slectionnez cette option afin de rfrencer un bean Java enregistr
par un cBeanRegister.

Dans le champ Id qui apparat, saisissez l'ID du bean Java.


New instance Slectionnez cette option pour invoquer un bean Java stock dans
le nud Code du Repository.

Dans le champ Bean class qui apparat, saisissez le nom de la


classe du bean.

Pour plus d'informations concernant la cration et l'utilisation de


beans Java, consultez le Guide utilisateur du Studio Talend.
Specify the method Cochez cette case pour saisir le nom d'une mthode inclure dans
le bean.
Utilisation Le cBean peut tre utilis comme composant de dbut, de milieu ou de fin dans une Route.

Scnario associ
Pour un scnario associ, consultez :

cConvertBodyTo : Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class.

146 Guide de rfrence des Composants Mediation de Talend ESB


cDelayer

cDelayer

Proprits du cDelayer
Famille de composant Processor
Fonction Le composant cDelayer retarde la livraison de messages.
Objectif Le composant cDelayer vous permet de configurer un dlai dans le routage de message.
Basic settings Time to wait(in ms) Renseignez ce champ l'aide d'un entier pour configurer le temps
attendre avant d'envoyer le message l'endpoint suivant.
Utilisation Ce composant est gnralement utilis comme composant intermdiaire dans une Route.
Limitation n/a

Scnario : Utiliser le cDelayer pour retarder le routage


de messages
Dans ce scnario, le composant cDelayer est utilis pour retarder de 20 secondes le routage de chaque message
vers l'endpoint de destination.

Dposer et relier les composants


Ce scnario utilise un composant cDelayer, deux cFile et deux cProcessor.

1. Du dossier Messaging de la Palette, dposez deux composants cFile dans l'espace de modlisation graphique,
l'un pour lire des fichiers d'un dossier local et l'autre pour crire les fichiers dans un autre dossier local.

2. Du dossier Processor, dposez deux composants cProcessor dans l'espace de modlisation graphique, un
ct du composant de lecture Read, que vous nommez Read_monitor, qui monitore les messages lus et
l'autre ct du composant d'criture Write, que vous nommez Writer_monitor, qui monitore les messages
crits dans le dossier cible.

3. Du dossier Processor, dposez un composant cDelayer dans l'espace de modlisation graphique, entre le
composant Read_monitor et le composant Write.

4. Reliez les composants l'aide de liens Row > Route.

5. Nommez les composants comme vous le souhaitez afin de mieux identifier leur rle dans la Route, comme
dans la capture d'cran ci-dessus.

Guide de rfrence des Composants Mediation de Talend ESB 147


Scnario : Utiliser le cDelayer pour retarder le routage de messages

Configurer les composants


1. Double-cliquez sur le premier composant cFile nomm Read, pour ouvrir sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs vos fichiers source, ou parcourez votre systme jusqu'
ceux-ci et laissez les autres paramtres tels qu'ils sont.

3. Rptez ces tapes pour dfinir le dossier de sortie dans les paramtres du second composant cFile nomm
Write.

4. Double-cliquez sur le premier composant cProcessor nomm Read_monitor pour ouvrir sa vue Basics
settings.

5. Dans la zone Code, personnalisez le code pour afficher l'heure laquelle chaque message est lu depuis sa
source :

Date date=new Date();


SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String s = formatter.format(date);
System.out.println("\nMessage "+
exchange.getIn().getHeader("CamelFileName")+
" read at "+(s));

6. Rptez ces tapes pour configurer le second cProcessor nomm Write_monitor pour afficher l'heure
laquelle chaque message est crit dans sa cible :

Date date=new Date();


SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
String s = formatter.format(date);
System.out.println("Message "+
exchange.getIn().getHeader("CamelFileName")+ " written at "+(s));

7. Double-cliquez sur le composant cDelayer nomm Delay_timer pour ouvrir sa vue Basic settings.

148 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cDelayer pour retarder le routage de messages

8. Dans le champ Time to wait (in ms), saisissez le nombre de millisecondes dont vous souhaitez retarder la
livraison des messages. Notez que la valeur doit tre un entier positif.

Dans ce scnario, chaque message doit tre livr aprs 20 secondes de latence.

9. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, une latence de 20 secondes est implmente, selon .delay(20000) dans le
routage des messages partir de l' (from) endpoint Read vers (.to) l'endpoint Write.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Chaque message lu du dossier source et rout vers le dossier cible aprs une latence de 20 secondes.

Guide de rfrence des Composants Mediation de Talend ESB 149


Scnario : Utiliser le cDelayer pour retarder le routage de messages

150 Guide de rfrence des Composants Mediation de Talend ESB


cExchangePattern

cExchangePattern

Proprits du cExchangePattern
Famille de composant Processor
Fonction Le composant cExchangePattern peut tre configur pour indiquer le mode d'change des
messages.
Objectif Le cExchangePattern vous permet de configurer le mode d'change des messages.
Basic settings Exchange Patterns Slectionnez le mode d'change des messages parmi InOnly,
InOptionalOut, InOut, OutIn, OutOptionalIn, RobustInOnly, ou
RobustOutOnly.
Utilisation Composant intermdiaire dans une Route, le cExchangePattern vous permet de configurer le
mode d'change des messages.
Limitation

Scnario : Activer le modle d'change InOut pour


obtenir des rponses
Dans ce scnario, un composant cExchangePattern est utilis pour activer le modle d'change requte/rponse
dans la route, afin qu'un client obtienne une rponse du serveur.

Pour envoyer des requtes au serveur, soapUI est requis. Sa configuration est dcrite dans les sections suivantes.

Pour construire votre Route, procdez comme suit.

Glisser-dposer des composants et les relier


1. Glissez-dposez les composants suivants de la Palette dans l'espace de modlisation graphique :
cCXF, cExchangePattern et cProcessor et renommez-les respectivement WebService_producer,
Set_exchange_mode et Build_reply_message afin de mieux identifier leur rle.

2. Reliez le cCXF au cExchangePattern l'aide d'un lien Row > Route.

3. Reliez le cExchangePattern au cProcessor l'aide d'un lien Row > Route.

Configurer les composants


1. Double-cliquez sur le composant cCXF pour ouvrir sa vue Basic settings dans l'onglet Component.

Guide de rfrence des Composants Mediation de Talend ESB 151


Scnario : Activer le modle d'change InOut pour obtenir des rponses

2. Dans le champ Address, laissez les paramtres par dfaut.

3. Dans la liste Type, slectionnez wsdlURL.

4. Dans le champ WSDL File, saisissez l'URL du fichier wsdl. Vous pouvez galement cliquer sur le bouton
[...] afin de parcourir votre systme jusqu' ce fichier.

5. Dans la liste Dataformat, slectionnez PAYLOAD.

6. Double-cliquez sur le composant cExchangePattern pour ouvrir sa vue Basic settings dans l'onglet
Component.

7. Dans la liste Exchange Patterns, slectionnez InOut pour activer le mode d'changes requte/rponse des
messages.

8. Double-cliquez sur le cProcessor pour ouvrir sa vue Basic settings.

9. Dans la zone Code, saisissez le code ci-dessous.

StringBuilder sb = new StringBuilder();

152 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Activer le modle d'change InOut pour obtenir des rponses

sb.append("<tns:getAirportInformationByISOCountryCodeResponse xmlns:tns=\"http://
airportsoap.sopera.de\">");
sb.append("<tns:getAirportInformationByISOCountryCodeResult>This is a response</
tns:getAirportInformationByISOCountryCodeResult>");
sb.append("</tns:getAirportInformationByISOCountryCodeResponse>");
exchange.getOut().setBody(sb.toString());

Comme affich ci-dessus, une chane de caractres est construite ici et utilise comme message de rponse
de la route. Cela correspond la dfinition du message dans le fichier wsdl ci-dessus.

10. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich ci-dessus, le modle d'change des messages de la route est configur comme InOut
l'aide de la mthode .setExchangePattern(org.apache.camel.ExchangePattern.InOut). Une chane
de caractres est cre via StringBuilder sb = new StringBuilder() dans le cProcessor_1 et est
utilise comme message de rponse via la mthode exchange.getOut().setBody( sb.toString()).

2. Appuyez sur F6 pour excuter la Route.

La Route du serveur dmarre.

Crer et envoyer une requte la Route du serveur et obtenir une


rponse
1. Dans soapUI, crez un projet de test et ditez une requte, comme dans la capture d'cran ci-dessous :

Guide de rfrence des Composants Mediation de Talend ESB 153


Scnario : Activer le modle d'change InOut pour obtenir des rponses

Notez que le fichier wsdl doit tre le mme que celui configur dans le cCXF, afin que la requte soit en
accord avec la dfinition du service Web.

2. Envoyez la requte la Route du serveur. Vous obtenez la rponse, comme illustr ci-dessous :

154 Guide de rfrence des Composants Mediation de Talend ESB


cJavaDSLProcessor

cJavaDSLProcessor

Proprits du cJavaDSLProcessor
Famille de composant Processor
Fonction Le composant cJavaDSLProcessor implmente des producteurs et des consommateurs
d'changes de messages ou implmente un Message Translator utilisant le DSL Java (Domain
Specific Language).
Objectif Le cJavaDSLProcessor est utilisable pour injecter rapidement du code l'aide du DSL Java.
Si le code de la classe interne devient plus complexe, il est conseill de le refactoriser dans une
classe spare.
Basic settings Code Saisissez le code que vous souhaitez implmenter l'aide d'un DSL
Java.
Utilisation Le cJavaDSLProcessor peut tre utilis en tant que composant de dbut, composant
intermdiaire ou composant de fin dans une Route.
Limitation n/a

Scnario associ
Pour un scnario associ, consultez Scnario : Ecouter un message dans une Route.

Guide de rfrence des Composants Mediation de Talend ESB 155


cProcessor

cProcessor

Proprits du cProcessor
Famille de composant Processor
Fonction Le composant cProcessor implmente des consommateurs d'changes de messages ou
implmente un Message Translator.
Objectif Le cProcessor peut tre utilis pour remanier rapidement du code. Si le code dans la classe
interne devient plus complexe, il est recommand de le refactoriser dans une classe spare.
Basic settings Imports Saisissez le code Java qui vous aident importer, si ncessaire, les
bibliothques utilises dans le champ Code.
Code Saisissez le code Java que vous souhaitez implmenter.
Utilisation Le cProcessor peut tre utilis comme composant intermdiaire ou composant de fin dans une
Route.
Limitation n/a

Scnario associ
Pour un scnario associ, consultez Scnario : Intercepter plusieurs routes et les rediriger dans une seule nouvelle
route du composant cIntercept.

156 Guide de rfrence des Composants Mediation de Talend ESB


cTalendJob

cTalendJob

Proprits du cTalendJob
Famille de composant Processing
Fonction Le composant cTalendJob appelle un Job d'intgration de donnes export en tant que bundle
OSGI pour ESB, ou disponible dans le rfrentiel. Pour plus d'informations concernant la
construction d'un Job et son export en tant que Bundle OSGi pour ESB, consultez le Guide
utilisateur du Studio Talend.
Objectif Le cTalendJob vous permet d'changer des messages entre un Job d'intgration de donnes et
une Route de mdiation.
Basic settings Repository Slectionnez cette option pour appeler un Job du Repository.
External Slectionnez cette option pour appeler un Job export en tant que bundle OSGI
pour ESB.
Repository/Use Ce champ apparat lorsque l'option Repository est slectionne. Cochez
Selected cette case pour utiliser le contexte slectionn dans la liste Context lors de
Context l'excution du Job.
Repository/Use Ce champ apparat lorsque l'option Repository est slectionne. Cochez cette
Route Context case pour utiliser le contexte du Job du mme nom que celui utilis dans la
Route lors de l'excution du Job. S'il n'existe pas, le contexte par dfaut du Job
sera utilis.

Si le contexte n'existe pas dans le Job, les valeurs nulles des


paramtres de contexte sont utilises durant l'excution du Job.
Assurez-vous d'avoir le contexte requis dans le Job.
Repository/Use Ce champ apparat lorsque l'option Repository est slectionne. Cochez cette
Job Context case pour utiliser le contexte slectionn du Job lors de l'excution du Job.
Repository/Job Ce champ apparat lorsque l'option Repository est slectionne. Cliquez sur
[...] pour afficher l'assistant [Assign Job]. Slectionnez Create a new Job and
Assign it to this cTalendJob component ou Assign an existing Job to this
cTalendJob component et suivez les consignes qui s'affichent.

Lorsque vous assignez un Job existant au cTalendJob, seuls les Jobs


contenant un tRouteInput peuvent tre slectionns.

Vous pouvez double-cliquer sur le cTalendJob pour ouvrir le Job rfrenc


dans la perspective Mediation, ou cliquer-droit sur le cTalendJob et
slectionner Open Job in Integration dans le menu contextuel afin de passer
en perspective Integration et d'ouvrir le Job.
Repository/ Ce champ apparat lorsque l'option Repository est slectionne. Slectionnez
Version la version du Job si plus d'une version du Job est disponible.
Repository/ Ce champ apparat lorsque l'option Repository est slectionne. Slectionnez
Context dans la liste le contexte utiliser pour excuter le Job rfrenc.

Cette option fonctionne uniquement lorsque l'option Use Selected


Context est slectionne.
External Jar/ Ce champ apparat lorsque l'option External est slectionne. Slectionnez
Library dans la liste la bibliothque que vous souhaitez importer ou cliquez sur le
bouton [...] pour importer la bibliothque jar de votre Job.
External Jar/ Saisissez le nom du package et le nom de votre Job spars par un
Job point. Par exemple : route_project.txmlmap_0_1.tXMLMap. Pour obtenir
ce nommage, ouvrez la bibliothque jar de votre Job, allez OSGI-
INF > blueprint et ditez le fichier .xml du Job. Le nommage
est disponible dans le nud d'un bean comme <bean id="job"
class="route_project.txmlmap_0_1.tXMLMap"/>.

Guide de rfrence des Composants Mediation de Talend ESB 157


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

External Jar/ Ce champ apparat lorsque l'option External est slectionne. Saisissez le nom
Context du contexte utiliser pour excuter le Job rfrenc.
Context Param Utilisez cette table pour modifier les valeurs des variables du contexte spcifi
dans le Job rfrenc.

Cliquez sur le bouton [+] pour ajouter autant de lignes que ncessaire la
table. Slectionnez la variable de contexte que vous souhaitez modifier dans la
liste Parameters de chaque ligne et saisissez la valeur donner dans le champ
Values. Cette valeur remplace la valeur dfinie du ct du Job.
Advanced settings Propagate Cochez cette case pour passer l'en-tte du message au Job rfrenc en tant que
Header variable de contexte.
Utilisation Le cTalendJob peut tre utilis en tant que composant de dbut, composant intermdiaire
ou composant de fin dans une Route. Lorsque vous crez un Job d'intgration de donnes,
vous devez utiliser un composant tRouteInput afin d'viter que le Job rfrenc dmarre
automatiquement lorsqu'il est dploy dans Talend Runtime. Ainsi, le Job dmarre lorsqu'il est
appel par la Route.

Scnario : Utiliser un cTalendJob pour appeler un Job


d'intgration de donnes
Dans ce scnario, vous allez construire un Job d'intgration de donnes avec contexte, dans la perspective
Integration. Vous allez ensuite crer une Route dans la perspective Mediation avec un composant cTalendJob
pour appeler le Job et dfinir les variables de contexte dans ce Job.

Crer un Job d'intgration de donnes


Dans cette section, construisez un Job nomm RouteCommunication pour accepter le message provenant d'une
Route. Pour plus d'informations concernant la conception d'un Job, consultez le Guide utilisateur du Studio Talend.

Dposer et relier les composants

1. Glissez-dposez un tRouteInput et un tLogRow de la Palette dans l'espace de modlisation graphique.

2. Cliquez-droit sur le composant tRouteInput, slectionnez Row > Main dans le menu contextuel et cliquez
sur le tLogRow.

Configurer les composants

1. Crez deux variables, header et body dans le groupe de contexte Default. Donnez la valeur world
la variable body. La variable header reoit sa valeur propage depuis la Route. Pour plus d'informations
concernant la configuration des contextes, consultez le Guide utilisateur du Studio Talend.

158 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

2. Double-cliquez sur le tRouteInput pour ouvrir sa vue Basic settings.

3. Cliquez sur le bouton [...] ct du champ Edit Schema. Dans la bote de dialogue du schma, cliquez sur le
bouton [+] pour ajouter deux lignes de type String et nommez-les respectivement header et body. Cliquez
sur OK pour fermer la bote de dialogue.

4. Dans le champ Simple Expression de l'lment header, saisissez context.header pour utiliser la variable
header dans le groupe de contexte propager depuis la Route.

Guide de rfrence des Composants Mediation de Talend ESB 159


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

Dans le mme champ pour l'lment body, saisissez context.body pour utiliser la variable body dans le
groupe de contexte comme corps de message.

5. Le composant tLogRow va monitorer les changes de messages et ne ncessite aucune configuration.

6. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

Crer une Route de mdiation


Dans cette section, vous allez passer en perspective Mediation et crer une Route envoyant un message au Job.

Dposer et relier les composants

1. Glissez-dposez un cTimer, un cSetHeader et un cTalendJob de la Palette dans l'espace de modlisation


graphique.

2. Reliez les composants l'aide de liens Row > Route.

3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.

Configurer les composants

1. Double-cliquez sur le cTimer pour ouvrir sa vue Basic settings.

2. Configurez les valeurs des champs Period, Repeat et Delay, respectivement 200, 1 et 1000 afin de dclencher
un change de messages aprs un dlai de 1000 millisecondes.

3. Double-cliquez sur le composant cSetHeader pour afficher sa vue Basic settings.

160 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

4. Cliquez sur le bouton [+] pour ajouter une ligne la table Headers.

Dans le champ Name, saisissez "header" comme nom d'en-tte.

Slectionnez Constant dans la liste Language et saisissez "FileName" dans le champ Value.

5. Double-cliquez sur le cTalendJob pour ouvrir sa vue Basic settings.

6. Slectionnez Repository dans la zone suprieure pour appeler un Job du rfrentiel.

7. Dans la zone Repository Job, slectionnez Use Selected Context.

Cliquez sur le bouton [...] ct du champ Job pour ouvrir l'assistant [Assign Job]. Slectionnez Assign an
existing Job to this cTalendJob component et cliquez sur Next.

Guide de rfrence des Composants Mediation de Talend ESB 161


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

Dans la vue Job selection, slectionnez RouteCommunication, le Job cr prcdemment, puis cliquez sur
Finish.

RouteCommunication s'affiche dans le champ Job. Par dfaut, la dernire version de ce Job est charge, ainsi
que son contexte par dfaut.

8. Cliquez sur le bouton [+] sous la table Context Param pour y ajouter une ligne.

La liste Parameters contient les variables du groupe de contexte par dfaut du Job rfrenc. Slectionnez
body dans la liste.

Saisissez "Hello World!" dans le champ Values. Cela remplace la valeur world dfinir dans le contexte
du Job.

9. Cliquez sur l'onglet Advanced settings. Cochez la case Propagate Header pour passer l'en-tte dfini dans
le cSetHeader au Job en tant que variable de contexte.

162 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

10. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Comme affich ci-dessus, une route de message est construite depuis Starter, configure un message header
via le cSetHeader et l'envoie au cTalendJobpur excution du Job.

2. Appuyez sur F6 pour excuter la Route.

Guide de rfrence des Composants Mediation de Talend ESB 163


Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes

Comme affich ci-dessus, l'en-tte et le corps du message sont affichs dans la console par le tLogRow. La
valeur de l'en-tte est FileName, elle est dfinie par le cSetHeader et passe au Job en tant que variable de
contexte. La valeur du corps est Hello World!, elle est dfinie par le composant tRouteInput via la variable
de contexte body du Job. La valeur de cette variable est dfinie comme world dans le Job, mais est modifie
en Hello World! dans le cTalendJob.

164 Guide de rfrence des Composants Mediation de Talend ESB


Composants Routing
Ce chapitre passe en revue les principaux composants prsents dans la famille Routing de la Palette dans la
perspective Mediation du Studio Talend.

La famille Routing regroupe les composants qui transfrent les messages d'un endpoint un autre selon un
ensemble de conditions.

Guide de rfrence des Composants Mediation de Talend ESB


cAggregate

cAggregate

Proprits du cAggregate
Famille de composant Routing
Fonction Le composant cAggregate agrge des messages selon des conditions spcifies.
Objectif Le cAggregate vous permet de combiner un certain nombre de messages en un seul message.
Basic settings Language Slectionnez le langage de l'expression que vous souhaitez
utiliser pour filtrer vos messages, entre None, Constant, Header,
Property, Simple et XPath.

Slectionnez CorrelationID pour utiliser l'ID de corrlation du


message comme cl de corrlation si l'ID de corrlation est
disponible dans le cCXF le plus proche connect ce composant.
Pour plus d'informations, consultez cCXF.
Correlation expression/ Saisissez l'expression valuant la cl de corrlation utiliser pour
Expression l'agrgation.

Ce champ disparat lorsque l'option Correlation ID est


slectionne dans la liste Language. Dans ce cas, l'ID de
corrlation du cCXF le plus proche connect ce composant est
utilis. Pour plus d'informations, consultez cCXF.
Correlation expression/Add Cette option apparat lorsque XPath est slectionn dans la liste
Namespaces Language.

Cochez cette case pour ajouter des espaces de noms pour


l'expression Xpath. Cliquez sur le bouton [+] pour ajouter autant
d'espaces de noms que ncessaire dans la table et dfinissez le
prfixe et l'URI dans les colonnes correspondantes.
Strategy Spcifiez un bean Java utiliser comme stratgie d'agrgation.
Completion conditions/ Cochez cette case pour spcifier le nombre de messages agrger
Number of messages par lot avant que l'opration d'agrgation soit complte.

Cette case est coche par dfaut et le nombre de


messages est dfini 3. Si vous dcochez cette case
et qu'au moins l'une des quatre autres conditions de
compltion est rencontre, tous les messages rcuprs
sont agrgs en un lot.
Completion conditions/ Cochez cette case pour spcifier la dure (en millisecondes) qu'un
Inactivity timeout (in change agrg doit rester inactif pour tre complet. Cette option
milliseconds) peut tre dfinie soit comme une valeur fixe soit l'aide d'une
Expression qui vous permet d'valuer dynamiquement le dlai
avant suspension.

Vous ne pouvez utiliser cette option avec Scheduled


interval. Une seule d'entre elles peut tre utilise la
fois.
Completion conditions/ Cochez cette case pour spcifier un intervalle de temps (en
Scheduled interval (in millisecondes) la fin duquel les changes de messages seront
milliseconds) agrgs.

Vous ne pouvez utiliser cette option avec Inactivity


timeout. Une seule d'entre elles peut tre utilise la
fois.
Completion conditions/ Cochez cette case pour spcifier un prdicat indiquer lorsqu'un
Predicate matched change agrg est termin.

166 Guide de rfrence des Composants Mediation de Talend ESB


Proprits du cAggregate

Completion conditions/ Cochez cette case pour agrger tous les fichiers consomms partir
Batch consumer de l'endpoint de fichiers l'emplacement spcifi.
Advanced settings Check completion before Cochez cette case afin de vrifier la compltion lorsqu'un
aggregating nouvel change entrant est reu. Cette option influence le
comportement de l'option Predicate matched car l'change pass
change. Lorsque cette option est dsactive, l'change pass
dans le prdicat est l'change aggregated, ce qui signifie que
toute information stocke dans l'change agrg par la stratgie
d'agrgation est disponible pour le prdicat. Lorsque cette option
est active, l'change pass dans le prdicat est l'change incoming,
ce qui signifie que vous pouvez accder aux donnes de l'change
entrant.
Close correlation group Cochez cette case pour indiquer qu'une cl de corrlation dj
t complte. Tout change ayant la mme cl de corrlation sera
refus. lorsque vous utilisez cette option, saisissez un nombre dans
le champ Maximum bound afin de n'avoir qu'un nombre ferm
de cls de corrlation.
Ignore invalid correlation Cochez cette case pour ignorer une cl de corrlation invalide
key ne pouvant tre value comme une valeur. Par dfaut Camel va
retourner une Exception lorsqu'il rencontre une cl de corrlation
invalide.
Group arriving exchange Cochez cette case pour grouper tous les changes agrgs en un
seul objet contenant tous les changes agrgs. Un seul message
Exchange est envoy depuis l'Aggregator. Cette option peut tre
utilise pour combiner plusieurs messages de type Exchange
entrants en un seul message Exchange de sortie.
Use persistence Cochez cette case pour slectionner votre propre implmentation
du rfrentiel conservant une trace des changes agrgs en cours
d'agrgation. Par dfaut, Camel utilise une implmentation base
mmoire.
Repository Ce champ apparat lorsque la case Use
persistence est coche. Le rfrentiel peut tre
AggregationRepository, HawtDBAggregationRepository, ou
RecoverableAggregationRepository.
AggregationRepository : Le rfrentiel par dfaut utilis par
Camel est une implmentation base mmoire. Saisissez le nom
du rfrentiel dans le champ.
HawtDBAggregationRepository :
HawtDBAggregationRepository est un AggregationRepository
faisant persister les messages agrgs la vole. Cela vous assure
de ne pas perdre vos messages. Avec ce rfrentiel slectionn, les
options suivantes apparaissent :

Use persistent file : Cochez cette case pour stocker les changes
agrgs dans un fichier. Saisissez le nom du fichier pour le
stockage persistant dans le champ Persistent file. Si le fichier
n'existe pas, il sera cr.

Recovery/Use recovery : Cochez cette case pour rcuprer


les changes agrgs ayant chou et les soumettre nouveau
automatiquement. Dans le champ Recovery interval, saisissez
l'intervalle (en millisecondes) de temps au bout duquel chercher
les changes chous reprendre et soumettre nouveau. Cet
intervalle est par dfaut de 5000 millisecondes. Dans le champ
Dead letter channel, saisissez une URI d'endpoint pour un canal
des messages perdus dans lequel tous les messages Exchange
rcuprs seront dplacs. Dans le champ Maximum redeliveries,
saisissez le nombre maximal de tentatives de livraison pour un
change rcupr.
RecoverableAggregationRepository :
RecoverableAggregationRepository est un JDBC bas sur un
AggregationRepository faisant persister les messages agrgs la
vole. Cela vous assure de ne pas perdre vos messages. Saisissez
le nom du rfrentiel dans le champ.

Guide de rfrence des Composants Mediation de Talend ESB 167


Scnario : Agrger trois messages en un

En slectionnant ce rfrentiel, les options suivantes apparaissent :

Recovery/Use recovery : Cochez cette case pour rcuprer


les changes agrgs ayant chou et les soumettre nouveau
automatiquement. Dans le champ Recovery interval, saisissez
l'intervalle (en millisecondes) de temps au bout duquel chercher
les changes chous reprendre et soumettre nouveau. Cet
intervalle est par dfaut de 5000 millisecondes. Dans le champ
Dead letter channel, saisissez une URI d'endpoint pour un canal
des messages perdus dans lequel tous les messages Exchange
rcuprs seront dplacs. Dans le champ Maximum redeliveries,
saisissez le nombre maximal de tentatives de livraison pour un
change rcupr.
Utilisation Le composant cAggregate peut tre utilis comme composant de milieu ou de fin dans une
Route.
Connections Aggregate Slectionnez ce lien pour router des messages vers l'endpoint
suivant, selon la stratgie d'agrgation slectionne.
Route Slectionnez ce lien pour router tous les messages de l'metteur
vers l'endpoint suivant.
Limitation n/a

Scnario : Agrger trois messages en un


Dans ce scnario, le composant cAggregate combine trois messages du systme de fichiers local en un seul et
affiche les messages dans la console. Un bean Java est utilis comme stratgie d'agrgation.

Crer un bean Java comme stratgie d'agrgation


Pour agrger les messages, utilisez un bean Java qui vous permet de construire une stratgie d'agrgation.

1. Dans la vue Repository, dveloppez le nud Code et cliquez-droit sur le nud Beans. Dans le menu
contextuel, slectionnez Create Bean.

2. L'assistant [New Bean] s'ouvre. Dans le champ Name, saisissez un nom pour le bean, par exemple
AggregateBody. Cliquez sur Finish pour fermer l'assistant.

168 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Agrger trois messages en un

3. Saisissez les codes comme ci-dessous. Dans ce scnario, agrgez tous les message en un seul.

package beans;

import org.apache.camel.Exchange;
import org.apache.camel.processor.aggregate.AggregationStrategy;

public class AggregateBody implements AggregationStrategy{

public Exchange aggregate(Exchange oldEx, Exchange newEx) {


if(oldEx==null){
return newEx;
}
String oldBody = oldEx.getIn().getBody(String.class);
String newBody = newEx.getIn().getBody(String.class);
newEx.getIn().setBody(oldBody+newBody);
return newEx;
}
}

4. Appuyez sur Ctrl+S pour sauvegarder votre bean.

Guide de rfrence des Composants Mediation de Talend ESB 169


Scnario : Agrger trois messages en un

Dposer et relier les composants

1. Dans la Palette, dveloppez le dossier Messaging. Slectionnez le composant cFile et dposez-le dans
l'espace de modlisation graphique.

2. Dveloppez le dossier Routing. Slectionnez le composant cAggregate et dposez-le dans l'espace de


modlisation graphique.

3. Dveloppez le dossier Processor. Slectionnez deux composants cProcessor et dposez-les dans l'espace de
modlisation graphique.

4. Cliquez-droit sur le composant cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
premier composant cProcessor.

5. Rptez cette opration pour connecter le premier cProcessor au composant cAggregate.

6. Cliquez-droit sur le composant cAggregate, slectionnez Row > Aggregate dans le menu contextuel et
cliquez sur le second cProcessor.

7. Renommez tous les composants, si vous le souhaitez, afin de mieux identifier leur fonctionnalit, comme
dans la capture d'cran ci-dessus.

Configurer les composants


1. Double-cliquez sur le cFile nomm File_source, pour afficher sa vue Basic settings dans l'onglet
Component.

2. Dans le champ Path, parcourez votre systme ou saisissez le chemin d'accs votre fichier d'entre. Laissez
les autres champs tels qu'ils sont.

Dans ce scnario, quatre fichiers texte se trouvent dans le rpertoire spcifi : a.txt, b.txt, c.txt et d.txt. Ils
contiennent respectivement la phrase suivante This is a! , This is b! , This is c! et This is d! .

3. Double-cliquez sur le composant cAggregate nomm Aggregator, pour afficher sa vue Basic settings dans
l'onglet Component.

170 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Agrger trois messages en un

4. Dans le champ Language, slectionnez Constant ou Simple comme langage d'expression.

Dans le champ Expression, saisissez l'expression "getBody(String.class)" pour rcuprer le corps du


message.

Dans le champ Strategy, saisissez le nom du bean Java AggregateBody que vous avez cr.

Cochez la case Number of messages et saisissez 2 dans le champ.

5. Double-cliquez sur le composant cProcessor nomm Monitor_before pour afficher sa vue Basic settings
dans l'onglet Component.

6. Dans le champ Code, personnalisez le code comme suit, afin que la console de la vue Run affiche le contenu
du message avant que l'opration d'agrgation soit effectue :

System.out.println("Before aggregation: "+


exchange.getIn().getBody(String.class));

7. De la mme faon, configurez le composant cProcessor nomm Monitor_after afin que la console de la vue
Run affiche le contenu du message aprs l'opration d'agrgation :

System.out.println("After aggregation: "+


exchange.getIn().getBody(String.class));

8. Appuyez sur les touches Ctrl+S pour sauvegarder votre route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 171


Scnario : Agrger trois messages en un

Comme affich dans le code, un message provenant (from) de l'endpoint File_source est rout via le
cProcessor_1 puis agrg selon la condition .aggregate.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les quatre messages sont agrgs en deux lots, deux messages combins en un par lot.

172 Guide de rfrence des Composants Mediation de Talend ESB


cDynamicRouter

cDynamicRouter

Proprits du cDynamicRouter
Famille de composant Routing
Fonction Le composant cDynamicRouter vous permet de dterminer le chemin des messages de manire
dynamique indpendamment des destinations possibles.
Objectif Le cDynamicRouter est utilis pour router un message ou des messages vers diffrents
endpoints selon des conditions spcifies.
Basic settings Bean class Saisissez le nom de la classe du bean utiliser pour le routeur
dynamique.
Specify the method Cochez cette case pour spcifier la mthode utiliser, dfinie dans
la classe du bean.
Ignore Invalid Endpoints Cochez cette case pour ignorer les URI de l'endpoint qui ne
sont pas rsolus. Dcochez cette case pour gnrer une exception
lorsque les URI de l'endpoint sont invalides.
Utilisation Le cDynamicRouter est utilis comme composant intermdiaire ou de fin dans une Route.
Limitation n/a

Scnario : Router des fichiers vers diffrents


emplacements selon des conditions
Dans ce scnario, trois fichiers de messages contenant des informations concernant des personnes sont routs vers
diffrents endpoints selon le nom de ville qu'ils contiennent.

Les exemples ci-dessous sont des extraits de fichiers XML d'exemple utiliss dans ce scnario :

Message_1.xml:

<person>
<firstName>Ellen</firstName>
<lastName>Ripley</lastName>
<city>Washington</city>
</person>

Message_2.xml:

<person>
<firstName>Peter</firstName>
<lastName>Green</lastName>
<city>London</city>
</person>

Message_3.xml:

<person>
<firstName>Alice</firstName>
<lastName>Yang</lastName>
<city>Beijing</city>

Guide de rfrence des Composants Mediation de Talend ESB 173


Scnario : Router des fichiers vers diffrents emplacements selon des conditions

</person>

Un bean Java prdfini, setDynaURI, est appel dans ce scnario pour retourner les URIs des endpoints selon le
nom de ville contenu dans chaque message. Par exemple, le message contenant le nom de la ville de Washington,
il sera rout vers l'endpoint Washington.

Pour plus d'informations concernant la cration et l'utilisation de Beans Java, consultez le Guide utilisateur du
Studio Talend.

package beans;

import org.apache.camel.Exchange;
import org.apache.camel.Header;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setDynaURI {

public String setURI(Document document,


@Header(Exchange.SLIP_ENDPOINT) String previous) {
if(previous!=null){
return null;
}
NodeList cities = document.getDocumentElement().getElementsByTagName(
"city");
Element city = (Element) cities.item(0);
String textContent = city.getTextContent();
return "direct:"+textContent;
}
}

Dposer et relier les composants

1. Dans la Palette, dveloppez le dossier Messaging et dposez un composant cFile et trois


cMessagingEndpoint dans l'espace de modlisation graphique.

2. Dveloppez le dossier Routing et dposez un composant cDynamicRouter dans l'espace de modlisation


graphique.

3. Dveloppez le dossier Processor et dposez trois cProcessor dans l'espace de modlisation graphique.

174 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router des fichiers vers diffrents emplacements selon des conditions

4. Nommez les composants comme vous le souhaitez afin de mieux identifier leur fonctionnalit.

5. Cliquez-droit sur le composant cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cDynamicRouter.

6. Rptez cette opration afin de connecter les composants cMessagingEndpoint aux cProcessor.

Configurer les composants et les connexions


1. Double-cliquez sur le composant d'entre cFile pour afficher sa vue Basic settings et configurer ses
proprits.

Dans ce scnario, spcifiez simplement le chemin d'accs au fichier d'entre et laissez les autres paramtres
tels qu'ils sont.

2. Double-cliquez sur le cDynamicRouter pour afficher sa vue Basic settings dans l'onglet Component.

3. Dans le champ Bean class, saisissez le nom du bean Java prdfini. Laissez la case Specify the method
dcoche, puisqu'il n'y a qu'une mthode dans le bean Java et laissez la case Ignore Invalid Endpoints
dcoche si vous souhaitez que le composant gnre une exception si l'URI de l'endpoint est invalide.

4. Double-cliquez sur le premier composant cMessagingEndpoint nomm Washington, pour afficher sa vue
Basic settings et saisissez l'URI de destination dans le champ URI pour votre message.

L'objectif est d'utiliser ce composant pour rcuprer le message rout vers l'URI direct:Washington, comme
ci-dessous.

Guide de rfrence des Composants Mediation de Talend ESB 175


Scnario : Router des fichiers vers diffrents emplacements selon des conditions

5. Rptez cette tape afin de configurer les URIs des endpoints pour les deux autres composants
cMessagingEndpoint : direct:London et direct:Beijing respectivement.

6. Double-cliquez sur le premier cProcessor nomm Monitor_Washington pour afficher sa vue Basic settings
dans l'onglet Component.

7. Dans la zone Code, personnalisez le code pour afficher dans la console le nom du fichier du message rout
vers l'endpoint Washington.

System.out.println("Message on endpoint Washington: "+


exchange.getIn().getHeader("CamelFileName"));

8. Rptez ces tapes pour configurer les deux autres composants cProcessor et afficher le nom des fichiers des
messages routs vers les endpoints London et Beijing respectivement.

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, le message entrant de (from) l'endpoint Message_source est
rout par le .dynamicRouter vers les URIs des endpoints dynamiquement configures, selon
beans.setDynaURI.class.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.

176 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router des fichiers vers diffrents emplacements selon des conditions

Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les messages source sont routs vers diffrents endpoints, selon le nom des villes contenus dans
les messages.

Guide de rfrence des Composants Mediation de Talend ESB 177


cIdempotentConsumer

cIdempotentConsumer

Proprits du cIdempotentConsumer
Famille de composant Routing
Fonction Le composant cIdempotentConsumer ddoublonne des messages et empche que l'endpoint
rcepteur reoive les messages en doublon.
Objectif Le cIdempotentConsumer identifie les messages dj envoys au rcepteur et les limine. Les
messages sont toujours envoys par l'metteur mais sont ignors par le rcepteur lors de la
livraison.
Basic settings Repository Type Les identifiants des messages doivent tre stocks dans un
Repository. Pour les nouveaux messages entrants, les identifiants
sont vrifis par rapport ceux stocks dans le Repository afin
d'identifier et de supprimer les doublons. Il y a deux moyens de les
stocker :

Memory : les identifiants des messages sont stocks


temporairement.

Le mode de stockage in-memory peut manquer de


mmoire. Il ne fonctionne pas dans un environnement en
cluster.

File : les identifiants des messages sont stocks dans un fichier.


Spcifiez le chemin d'accs ce fichier dans le champ File store.
File store Spcifiez le chemin d'accs au fichier stockant les identifiants des
messages ainsi que son nom.
Cache Size Saisissez la taille du cache, c'est--dire le nombre d'identifiants de
messages stocker.
Use language Cochez cette case si vous souhaitez spcifier le langage utilise dans
le champ Predicate afin de spcifier l'identifiant des messages.
Expression Saisissez l'expression utiliser pour spcifier l'identifiant des
messages.
Eager Cochez cette case pour dtecter les messages en doublon mme
lorsque les messages sont en cours de traitement. Dcochez-la pour
dtecter les doublons uniquement lorsque les messages ont bien t
traits.

Cette case est coche par dfaut.


SkipDuplicate Cochez cette case pour supprimer les doublons. Dcochez-la pour
ignorer les doublons afin de traiter tous les messages.

Cette case est coche par dfaut.


Utilisation Le cIdempotentConsumer est utilis comme composant intermdiaire dans une Route.
Connections idemp Le lien idemp rcupre les messages ddoublonns par le
composant cIdempotentConsumer.
Route En tant que lien facultatif, le lien Route rcupre tous les messages
provenant de l'metteur.
Limitation n/a

178 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Ddoublonner des messages pendant leur routage

Scnario : Ddoublonner des messages pendant leur


routage
Dans ce scnario, des messages ddoublonns sont filtrs et seul le message unique est rout vers sa destination.

Trois fichiers XML ayant le mme contenu, comme affich ci-dessus, sont utiliss dans ce scnario.

<people>
<person id="8">
<firstName>Ellen</firstName>
<lastName>Ripley</lastName>
<city>Washington</city>
</person>
</people>

Dposer et relier les composants


Ce scnario ncessite un composant cFile, un cIdempotentComsumer et deux cProcessor.

1. Dans la Palette, dveloppez la famille Messaging, slectionnez le composant cFile et dposez-le dans
l'espace de modlisation graphique comme composant de message source.

2. Dans la famille Routing, slectionnez le composant cIdempotentComsumer et dposez le dans l'espace de


modlisation graphique comme le composant de ddoublonnage des messages.

3. Dveloppez la famille Processor, dposez deux composants cProcessor dans l'espace de modlisation
graphique, un comme consommateur des messages ddoublonns et un pour tous les autres messages.

4. Cliquez-droit sur le cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le composant
cIdempotentComsumer.

5. Cliquez-droit sur le cIdempotentComsumer, slectionnez Row > idemp dans le menu contextuel et cliquez
sur le composant cProcessor du dessus.

6. Reliez le composant cIdempotentComsumer l'autre cProcessor l'aide d'un lien Row > Route. Ce lien
facultatif rcupre tous les messages provenant de la source.

7. Renommez les composants comme vous le souhaitez afin de mieux identifier leur rle dans la Route.

Configurer les composants et les connexions


1. Double-cliquez sur le cFile nomm Source, pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 179


Scnario : Ddoublonner des messages pendant leur routage

2. Dans le champ Path, spcifiez le chemin d'accs au message source.

Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers source et laissez les autres paramtres
tels qu'ils sont.

3. Double-cliquez sur le cIdempotentComsumer nomm Deduplicator, pour afficher sa vue Basic settings.

4. Dans la liste Repository Type, choisissez entre Memory et File pour spcifier l'emplacement de stockage
des identifiants des messages avant le processus de ddoublonnage. Dans ce scnario, slectionnez File.

Dans le champ File store, spcifiez l'emplacement de stockage des identifiants des messages.

Dans le champ Expression saisissez une expression pour filtrer les messages. Dans ce scnario, saisissez
l'expression suivante pour filtrer les messages selon le nud person des fichiers XML : xpath("/people/
person") et laissez les autres paramtres tels qu'ils sont. Vous pouvez galement cocher la case Use
language, slectionner XPath dans la liste Language et saisir "/people/person" dans le champ Predicate.

5. Double-cliquez sur le composant cProcessor nomm Unique afin d'afficher sa vue Basic settings.

180 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Ddoublonner des messages pendant leur routage

6. Dans la zone Code, personnalisez le code pour afficher le nom de fichier du message passant le
ddoublonnage :

System.out.println("Message consumed on Unique: "+


exchange.getIn().getHeader("CamelFileName"));

7. Rptez ces tapes pour configurer l'autre composant cProcessor nomm All, pour afficher les noms de
fichiers de tous les messages provenant de la source :

System.out.println("Message consumed on All: "+


exchange.getIn().getHeader("CamelFileName"));

8. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Dans ce morceau de code, les messages provenant de (from) la Source sont filtrs selon l'expression
xpath("/people/person") et ddoublonns par le composant cIdempotentConsumer_1.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour dmarrer l'excution de la Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Lorsque plusieurs fichiers ont le mme contenu, seul le premier est rout vers l'endpoint rcepteur.

Guide de rfrence des Composants Mediation de Talend ESB 181


cLoadBalancer

cLoadBalancer

Proprits du cLoadBalancer
Famille de composant Routing
Fonction Le composant cLoadBalancer distribue les messages qu'il reoit diffrents endpoints, selon les
politiques de rpartition de charge (load balancing).
Objectif Le cLoadBalancer vous permet de distribuer des messages diffrents endpoints, l'aide d'un
ensemble de stratgies de rpartition de charge.
Basic settings Strategy Slectionnez votre stratgie parmi les suivantes: Random, Round Robin,
Sticky, Topic, Failover et Custom. Chaque mthode est dcrite ci-dessous.
Random L'endpoint rcepteur est choisi de manire alatoire chaque change.
Round Robin Les messages sont distribus selon la mthode Round Robin, qui rpartit galement la charge.
Sticky Language Slectionnez le langage de l'expression utiliser dans le champ Expression
pour distribuer les messages.
Expression Saisissez l'expression utiliser pour calculer une cl de corrlation
dterminant l'endpoint slectionner.
Topic Slectionnez cette option pour envoyer tous les messages tous les endpoints.
Failover Basic mode Par dfaut, la stratgie failover de rpartition de charge envoie toujours les
messages au premier endpoint. Si le premier endpoint choue, les messages
sont envoys aux endpoints suivants.
Specify exceptions Spcifiez dans la table Exception les exceptions auxquelles le failover doit
ragir.
Use with Round robin Slectionnez cette option pour utiliser le failover avec des options avances.

Dans la liste Maximum failover attempt, slectionnez le nombre de


tentatives effectuer avant d'abandonner le transfert :

-Attempt forever : essaye indfiniment de transfrer les messages et tente


toujours le failover.

-Never failover : abandonne immdiatement le transfert des messages et ne


tente jamais le failover.

-A number of attempts : tente n fois de transfrer les messages, n tant le


nombre que vous spcifiez dans le champ Number of attempts.

Inherit error handler: Slectionnez true si vous souhaitez utiliser le


gestionnaire d'erreurs Camel. Si vous slectionnez false, le load balancer va
immdiatement effectuer un failover lorsqu'une exception est retourne.

Use Round robin : Slect true si vous souhaitez combiner le failover la


mthode Round Robin. Le failover rpartit les charges l'aide de la mthode
Round Robin, distribue la charge de manire gale entre les services et
fournit un failover automatique.
Custom Load balancer Saisissez le nom de votre load balancer personnalis.
Utilisation Le cLoadBalancer est utilis en tant que composant intermdiaire dans une Route.
Connections Load Balance Slectionnez ce lien pour router les messages vers l'endpoint selon la
stratgie de rpartition de charge slectionne.
Route Slectionnez ce lien pour router tous les messages de l'metteur l'endpoint
suivant.
Limitation n/a

182 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Distribuer les messages aux endpoints rcepteurs selon la mthode Round Robin

Scnario : Distribuer les messages aux endpoints


rcepteurs selon la mthode Round Robin
Dans ce scnario, un composant cLoadBalancer est utilis pour distribuer galement quatre messages deux
endpoints rcepteurs, selon la mthode de rpartition de charge Round Robin.

Dposer et relier les composants


Ce scnario requiert un composant cFile pour envoyer les messages, un cLoadBalancer pour distribuer galement
les messages vers deux endpoints rcepteurs, deux cJavaDSLProcessor pour dfinir les URIs des rcepteurs, deux
cMessagingEndpoint pour rcuprer les messages routs vers les deux rcepteurs et deux composants cProcessor
pour afficher l'effet de la rpartition de charge Round Robin.

1. Dans la famille Messaging de la Palette, dposez un composant cFile et deux cMessagingEndpoint dans
l'espace de modlisation graphique et nommez-les selon leur rle dans la Route : Sender, Receiver_A et
Receiver_B, respectivement.

2. De la famille Routing, dposez un composant cLoadBalancer dans l'espace de modlisation graphique et


nommez-le Load_balancer.

3. De la famille Processor, dposez deux cJavaDSLProcessor et deux cProcessor dans l'espace de


modlisation graphique et nommez-les selon leur rle dans la Route : To_Receiver_A, To_Receiver_B,
Monitor_A et Monitor_B, respectivement.

4. Reliez le cFile au cLoadBalancer l'aide d'un lien Row > Route.

5. Reliez le cLoadBalancer aux deux cJavaDSLProcessor l'aide de liens Row > Load Balance.

6. Reliez chaque cMessagingEndpoint aucProcessor correspondant l'aide d'un lien Row > Route.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 183


Scnario : Distribuer les messages aux endpoints rcepteurs selon la mthode Round Robin

2. Dans le champ Path, spcifiez le chemin d'accs au message source.

3. Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers de messages. Laissez les autres
paramtres tels qu'ils sont.

4. Double-cliquez sur le cLoadBalancer pour ouvrir sa vue Basic settings et slectionnez la mthode de
rpartition des charges que vous souhaitez utiliser, dans la liste Strategy. Dans ce scnario, slectionnez la
mthode par dfaut, Round robin.

5. Double-cliquez sur le composant cJavaDSLProcessor nomm To_Receiver_A pour ouvrir sa vue Basic
settings et saisissez l'URI du premier rcepteur entre guillemets doubles dans la zone Code, direct:a dans
cet exemple.

Rptez cette tape pour dfinir l'URI de l'autre rcepteur, direct:b, dans le composant
cJavaDSLProcessor nomm To_Receiver_B.

6. Double-cliquez sur le cMessagingEndpoint nomm Receiver_A pour ouvrir sa vue Basic settings et saisissez
l'URI du premier rcepteur entre guillemets doubles dans le champ URI, direct:a dans cet exemple.

184 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Distribuer les messages aux endpoints rcepteurs selon la mthode Round Robin

Rptez cette tape pour dfinir l'URI de l'autre rcepteur, direct:b, dans le cMessagingEndpoint nomm
Receiver_B.

7. Double-cliquez sur le composant cProcessor nomm Monitor_A pour ouvrir sa vue Basic settings et
personnalisez le code dans la zone Code pour afficher le nom des fichiers des messages routs vers
Receiver_A dans la console :

System.out.println("Message on Receiver_A: "+


exchange.getIn().getHeader("CamelFileName"));

Rptez cette tape pour personnaliser le code dans le composant cProcessor nomm Monitor_B pour
afficher le nom des fichiers des messages routs vers Receiver_B dans la console.

8. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr :

Comme affich ci-dessus, lorsque les messages sont routs de (from) l'endpoint source vers (.to) les
endpoints de destination, le routage rpartissant les charges est implment selon la mthode .roundRobin()
par le cLoadBalancer_1.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Des quatre messages de l'metteur, deux sont routs vers Receiver_A et deux sont routs vers
Receiver_B l'aide de la mthode Round Robin.

Guide de rfrence des Composants Mediation de Talend ESB 185


Scnario : Distribuer les messages aux endpoints rcepteurs selon la mthode Round Robin

186 Guide de rfrence des Composants Mediation de Talend ESB


cMessageFilter

cMessageFilter

Proprits du cMessageFilter
Famille de composant Routing
Fonction Le composant cMessageFilter filtre le contenu de messages selon le critre spcifi et route les messages
filtrs vers le canal de sortie spcifi. Tous les messages ne rpondant pas au critre seront ignors.

Pour plus d'informations concernant l'EIP Camel Message Filter, consultez : http://camel.apache.org/
message-filter.html (en anglais).
Objectif Utilisez le cMessageFilter pour supprimer des messages non souhaits d'un canal selon un critre dfini.
Basic settings Language Slectionnez le langage de l'expression utiliser pour filtrer vos messages parmi
Constant, EL, Groovy, Header, JavaScript, JoSQL, JXPath, MVEL, None,
OGNL, PHP, Property, Python, Ruby, Simple, SpEL, SQL, XPath et XQuery.
Expression Saisissez l'expression utiliser pour filtrer les messages.
Add Namespaces Cette option apparat lorsque XPath est slectionn dans la liste Language.

Cochez cette case pour ajouter des espaces de noms pour l'expression Xpath. Cliquez
sur le bouton [+] pour ajouter autant d'espaces de noms que ncessaire dans la table et
dfinissez le prfixe et l'URI dans les colonnes correspondantes.
Utilisation Le cMessageFilter est utilis en tant que composant intermdiaire dans une Route.
Connections Filter Slectionnez ce lien pour router les messages filtrs vers l'endpoint suivant.
Route Slectionnez ce lien pour router tous les messages de l'metteur l'endpoint suivant.
Limitation n/a

Scnario : Filtrer les messages selon un critre dfini


Dans ce scnario, filtrez les messages XML envoys par l'endpoint metteur selon un critre dfini : seuls les
fichiers XML dans lesquels la valeur du nud city est Paris sont envoys dans un dossier nomm Paris_only.

Des quatre fichiers XML utiliss dans ce scnario, Message_1.xml et Message_4.xml contiennent le nom de ville
de Paris. Le XML suivant est un exemple :

<person>
<firstName>Pierre</firstName>
<lastName>Dupont</lastName>
<city>Paris</city>
</person>

Dposer et relier les composants


Ce scnario requiert un composant cMessageFilter filtrant les messages de l'metteur, un cFile mettant les
messages, un cFile recevant les messages contenant Paris, un composant cFile recevant tous les messages de
l'metteur et deux cProcessor pour monitorer les messages routs vers les deux rcepteurs.

Guide de rfrence des Composants Mediation de Talend ESB 187


Scnario : Filtrer les messages selon un critre dfini

1. De la famille Messaging de la Palette, dposez trois composants cFile dans l'espace de modlisation
graphique et nommez-les respectivement Sender, Paris_only et Unfiltered afin de mieux identifier leur rle.

2. De la famille Routing, dposez un cMessageFilter dans l'espace de modlisation graphique et nommez-le


Filter.

3. Du dossier Processor, dposez deux cProcessor dans l'espace de modlisation graphique et nommez-les
respectivement Monitor_Paris et Monitor_Unfiltered.

4. Cliquez-droit sur le composant cFile nomm Sender, slectionnez Row > Route dans le menu contextuel et
cliquez sur le cMessageFilter.

5. Cliquez-droit sur le cMessageFilter, slectionnez Row > Filter dans le menu contextuel et cliquez sur le
cFile nomm Paris_only. Cet endpoint va rcuprer les messages rpondant au critre dfini.

6. Cliquez-droit sur le composant cMessageFilter, slectionnez Row > Route dans le menu contextuel et
cliquez sur le cFile nomm Unfiltered. Cet endpoint va collecter tous les messages, y compris ceux rpondant
au critre dfini. Cette connexion est facultative.

7. Cliquez-droit sur le composant cFile nomm Paris_only, slectionnez Row > Route dans le menu contextuel
et cliquez sur le composant cProcessor nomm Monitor_Paris. Rptez cette tape pour connecter le cFile
nomm Unfiltered au cProcessor nomm Monitor_Unfiltered.

Configurer les composants et les connexions


1. Double-cliquez sur le cFile nomm Sender pour ouvrir sa vue Basic settings.

2. Dans le champ Path, spcifiez le chemin d'accs au message source.

188 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Filtrer les messages selon un critre dfini

3. Dans la liste Encoding, slectionnez le type d'encodage des fichiers du message. Laissez les autres paramtres
tels qu'ils sont.

4. Double-cliquez sur le composant cMessageFilter pour ouvrir sa vue Basic settings.

5. Slectionnez le langage de l'expression que vous souhaitez utiliser pour filtrer vos messages et saisissez une
expression pour dfinir un critre selon lequel filtrer vos messages.

Dans ce scnario, triez les fichiers XML contenant un nud city dont la valeur est Paris, slectionnez
XPath dans la liste Language et saisissez dans le champ Expression l'expression suivante : "/
person[city='Paris']".

6. Double-cliquez sur le composant cFile nomm Paris_only pour ouvrir sa vue Basic settings et renseignez le
chemin d'accs pour les messages rpondant au critre de filtre, dans le champ Path.

Rptez cette tape pour dfinir le chemin d'accs tous les messages provenant de l'metteur dans le
composant cFile nomm Unfiltered.

7. Double-cliquez sur le cProcessor nomm Monitor_Paris pour ouvrir sa vue Basic settings et personnalisez
le code dans la zone Code pour afficher dans la console le nom des fichiers des messages rpondant au critre
de filtre :
System.out.println("Message sent to folder Paris_only: "+
exchange.getIn().getHeader("CamelFileName"));

Rptez cette tape pour personnaliser le code dans le composant cProcessor nomm Monitor_Unfiltered
pour afficher le nom des fichiers de tous les messages provenant de l'metteur.

8. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Pour visualiser le code gnr, cliquez sur l'onglet Code au bas de l'espace de modlisation graphique.

Guide de rfrence des Composants Mediation de Talend ESB 189


Scnario : Filtrer les messages selon un critre dfini

Comme affich dans le morceau de code ci-dessus, les messages provenant (from) de l'metteur sont filtrs
par le cMessageFilter_1 selon le critre .xpath("/person[city='Paris']") et les messages rpondant
au filtre sont envoys vers (.to) l'endpoint Paris_only, alors que tous les messages sont envoys vers (.to)
l'endpoint Unfiltered.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.

Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Les messages sont filtrs selon le critre dfini et les messages contenant la valeur "Paris" sont
redirigs vers le dossier Paris_only. Tous les messages, y compris ceux contenant "Paris", sont envoys dans
le dossier Unfiltered.

190 Guide de rfrence des Composants Mediation de Talend ESB


cMessageRouter

cMessageRouter

Proprits du cMessageRouter
Famille de composant Routing
Fonction Le composant cMessageRouter route des messages dans diffrents canaux selon des conditions
spcifies.
Objectif Le cMessageRouter cr diffrents canaux pour chaque type de message filtr, afin que les
messages puissent ultrieurement tre traits plus prcisment dans chaque nouveau canal.
Utilisation Le cMessageRouter est gnralement utilis comme composant intermdiaire dans une Route.
Il ne peut avoir qu'un seul canal d'entre mais plusieurs canaux de sortie. Les messages peuvent
tre crits en sortie via des liens de type When, Otherwise ou Route.
Connections Row / Route Slectionnez ce lien pour passer tous les messages au composant
suivant.
Trigger / When Slectionnez le lien When et cliquez sur la vue Component.

Dans la liste Type, slectionnez le type de langage que vous


utilisez pour dclarer votre condition.

Dans le champ Condition, saisissez la condition utiliser pour


filtrer les messages.

Append endChoice() : Si le lien When est suivi par un


cMessageFilter ou un cLoadBalancer, par exemple, il y aura une
erreur de compilation. Lorsqu'il y a un de ces composants, le type
de flux change de choice() loadbalance(), qui ne peut pas
tre suivi par un lien When ou Otherwise. Cochez cette case pour
rechanger le type de flux de loadbalance() choice().

Dans le champ Condition, saisissez la condition utiliser pour


filtrer les messages.

Tous les messages ne rpondant pas cette condition sont


rcupres via le lien Otherwise dans un canal diffrent ou sont
perdus s'il n'y a pas de lien Otherwise.

Il peut y avoir plusieurs liens When dans une Route.

Trigger / Otherwise Ce lien rcupre automatiquement les messages ne remplissant pas


les conditions When.

Il ne peut y avoir qu'un lien Otherwise, facultatif, dans


une Route.
Limitation Il n'est pas recommand d'effectuer de gestion de message aprs un lien when ou otherwise.
Utilisez toujours un endpoint Mock/Direct pour les remplacer et crez une nouvelle Route pour
grer les messages.

Scnario : Router des messages selon un critre


Dans ce scnario, vous routez des messages XML envoys de l'endpoint metteur selon un critre dfini : les
fichiers XML dans lesquels la valeur du nud city est Paris sont envoys dans un dossier nomm Paris_only et
les autres messages sont envoys dans un dossier nomm Others_cities.

Guide de rfrence des Composants Mediation de Talend ESB 191


Scnario : Router des messages selon un critre

Parmi les quatre fichiers XML utiliss dans ce scnario, Message_1.xml et Message_4.xml contiennent le nom de
la ville de Paris. Voici un exemple :

<person>
<firstName>Pierre</firstName>
<lastName>Dupont</lastName>
<city>Paris</city>
</person>

Dposer et relier les composants


1. De la famille Messaging de la Palette, dposez trois composants cFile et quatre cMessagingEndpoint
dans l'espace de modlisation graphique et nommez-les respectivement Sender, Receiver_Paris et
Receiver_Others, pour les cFile, et directParis, directOthers, directParisRoute et directOthersRoute afin de
mieux identifier leur rle.

2. De la famille Routing, dposez un composant cMessageRouter dans l'espace de modlisation graphique et


nommez-le Message_router.

3. De la famille Miscellaneous, dposez deux composants tLogRow dans l'espace de modlisation graphique
et nommez-les Monitor_Paris et Monitor_Others, respectivement.

4. Cliquez-droit sur le composant cFile nomm Sender, slectionnez Row > Route dans le menu contextuel et
cliquez sur le composant cMessageRouter.

5. Cliquez-droit sur le cMessageRouter, slectionnez Trigger > When dans le menu contextuel et cliquez sur
le composant cMessagingEndpoint nomm directParis. Cet endpoint va rcuprer les messages rpondant
au critre dfini.

6. Cliquez-droit sur le composant cMessageRouter, slectionnez Trigger > Otherwise dans le menu contextuel
et cliquez sur le cMessagingEndpoint nomm directOther. Cet endpoint va collecter tous les messages ne
rpondant pas au critre de filtre.

7. Cliquez-droit sur le composant cMessagingEndpoint nomm directParis, slectionnez Row > Route dans le
menu contextuel et cliquez sur le cFile nomm Receiver_Paris. Rptez cette tape pour relier le composant
Receiver_Paris au Monitor_Paris, le directOthersRoute au Receiver_Others et le Receiver_Others au
Monitor_Others, l'aide de liens Row > Route.

192 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router des messages selon un critre

Configurer les composants et les connexions


Le composant cMessageRouter ne possde pas de proprits car il filtre et route les messages d'un endpoint aux
autres selon les conditions dfinies dans les liens When.

1. Double-cliquez sur le composant cFile nomm Sender pour ouvrir sa vue Basic settings.

2. Dans le champ Path, spcifiez le chemin d'accs la source du message.

Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers de messages. Laissez les autres
paramtres tels qu'ils sont.

3. Dans l'espace de modlisation graphique, cliquez sur le lien When cr et cliquez sur la vue Component
pour dfinir un filtre par rapport auquel les messages seront routs.

4. Dans la liste Type, slectionnez xpath car le format des messages utiliss est XML.

Dans le champ Condition, saisissez "/person[city='Paris']" pour rcuprer uniquement les messages
dans lesquels la valeur du nud city est Paris.

5. Double-cliquez sur le composant cMessagingEndpoint nomm directParis pour ouvrir sa vue Basic
settings.

Guide de rfrence des Composants Mediation de Talend ESB 193


Scnario : Router des messages selon un critre

6. Dans le champ URI, saisissez l'URL de l'endpoint, par exemple "direct:Paris", afin de recevoir le message
filtr.

7. Rptez ces tapes afin de configurer l'URI des composants cMessagingEndpoint. L'URL du composant
directOthers est direct:Others, celle du directParisRoute est direct:Paris et celle du directOthersRoute est
direct:Others.

8. Double-cliquez sur le composant cFile nomm Receiver_Paris pour ouvrir sa vue Component et spcifiez
le chemin d'accs aux messages rpondant au critre de filtre, dans le champ Path.

Rptez cette tape pour dfinir le chemin d'accs tous les messages de l'metteur dans le composant cFile
nomm Receive_Other.

9. Double-cliquez sur le composant cLog nomm Monitor_Paris pour ouvrir sa vue Basic settings.

10. Dans la liste Level, slectionnez INFO. Slectionnez l'option Specify output log message et saisissez le code
suivant dans le champ Message pour afficher le nom de fichier du message envoy vers le rpertoire spcifi.

Message sent to folder Paris_only: ${header.CamelFileNameOnly}

Rptez cette tape pour personnaliser le message dans le composant cLog nomm Monitor_Others pour
afficher les noms de fichiers du message vers le rpertoire spcifi.

11. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

194 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router des messages selon un critre

Comme affich dans le code, les messages sont routs selon des conditions initialises par le morceau de
code .choice(), le filtre dfini est initialis par le morceau de code .when() et les messages non filtrs sont
routs via le morceau de code .otherwise().

2. Cliquez sur le bouton Run de la vue Run ou appuyez sur F6 pour excuter votre Route.

Rsultat : Les fichiers contenant "Paris"sont envoys dans le dossier nomm Paris_only et les autres messages
sont envoys dans un dossier nomm Others_cities.

Guide de rfrence des Composants Mediation de Talend ESB 195


cMulticast

cMulticast

Proprits du cMulticast
Famille de composant Routing
Fonction Le composant cMulticast route un ou plusieurs message(s) vers un certain nombre d'endpoints en une
seule fois.
Objectif Le cMulticast est utilis pour router un ou plusieurs message(s) vers un certain nombre d'endpoints en une
fois et le(s) traiter de diffrentes manires.
Basic settings URIS Ajoutez autant de lignes que ncessaire dans la table des URIs pour dfinir
les endpoints vers lesquels router les messages.
Use ParallelProcessing Cochez cette case pour diffuser simultanment en multipoint le(s)
message(s) vers les endpoints spcifis.
set timeout Cochez cette case et configurez le temps avant suspension dans le champ
Timeout, en millisecondes. Si le cMulticast ne russit pas envoyer et
traiter les messages durant le temps imparti, il arrte le traitement courant
et continue.

Cette case apparat uniquement lorsque la case Use ParallelProcessing est


coche.
Use Aggregation Strategy Cochez cette case et saisissez un Bean Java prdfini comme stratgie
d'agrgation pour assembler les messages de la source des messages en un
seul message de sortie. Le dernier message se comporte comme le message
sortant.
Stop On Exception Cochez cette case pour arrter immdiatement le traitement lorsqu'une
exception se produit.
Connections Route Slectionnez ce lien pour router le(s) message(s) de l'expditeur l'endpoint
suivant.
EndBlock Slectionnez ce lien pour router le(s) message(s) du bloc de fin de la Route
vers l'endpoint suivant.
Utilisation Le cMulticast peut tre utilis comme composant intermdiaire ou composant de fin dans une Route.

Scnario : Router un message vers de multiples


endpoints
Dans ce scnario, un composant cMulticast est utilis pour router un message vers deux endpoints. Un nouveau
corps est donn au message source et au message chaque endpoint. Le composant cProcessor est utilis pour
monitorer les messages.

196 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router un message vers de multiples endpoints

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Messaging. Glissez-dposez un cFile et deux cMessagingEndpoint
dans l'espace de modlisation graphique.

2. Du dossier Routing, dposez un composant cMulticast dans l'espace de modlisation graphique.

3. Du dossier Process, dposez quatre cProcessor dans l'espace de modlisation graphique.

4. Du dossier Transformation, dposez trois composants cSetBody dans l'espace de modlisation graphique.

5. Renommez les composants afin d'identifier leur rle au sein de la Route.

6. Cliquez-droit sur le composant cMulticast, slectionnez Row > EndBlock dans le menu contextuel et cliquez
sur le composant cProcessor nomm Monitor_endblock.

7. Cliquez-droit sur le cFile, slectionnez Row > Route dans le menu contextuel puis cliquez sur le composant
cMulticast. Rptez cette tape afin de lier les autres composants dans la Route, l'aide de liens Row >
Route.

Configurer les composants


1. Double-cliquez sur le composant cFile nomm Source_file pour ouvrir sa vue Basic settings dans l'onglet
Component.

Guide de rfrence des Composants Mediation de Talend ESB 197


Scnario : Router un message vers de multiples endpoints

2. Dans le champ Path, saisissez le chemin d'accs ou parcourez votre systme jusqu'au fichier source Hello.txt.
Laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le cMulticast nomm Multicast pour ouvrir sa vue Basic settings.

4. Dans la table URIS, cliquez deux fois sur le bouton [+] pour ajouter deux lignes et spcifier l'URI des
endpoints o le message sera envoy, "direct:a" et "direct:b" dans cet exemple.

5. Double-cliquez sur le cMessagingEndpoint nomm direct_a pour ouvrir sa vue Basic settings.

6. Dans le champ URI, saisissez l'URI de l'endpoint, par exemple "direct:a".

Effectuez la mme opration pour direct_b et direct_c puis saisissez les URIs de "direct:b" et "direct:c"
respectivement.

198 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router un message vers de multiples endpoints

7. Double-cliquez sur le composant cProcessor nomm Monitor_source pour ouvrir sa vue Basic settings.

8. Dans le champ Code, saisissez le code ci-dessous pour afficher le message source dans la console.

System.out.println("The source message is: " +


exchange.getIn().getBody(String.class));

Rptez cette tapte pour personnaliser le code des Monitor_endblock, Monitor_direct_a, et


Monitor_direct_b, pour afficher le message de chaque endpoint.

Monitor_endblock:

System.out.println("The endblock message is: " +


exchange.getIn().getBody(String.class));

Monitor_direct_a:

System.out.println("direct a just downloaded:


"+exchange.getIn().getBody(String.class));

Monitor_direct_b:

System.out.println("direct b just downloaded:


"+exchange.getIn().getBody(String.class));

9. Double-cliquez sur le cSetBody nomm Set_new_body to open its Basic settings view in the Component tab.

10. Slectionnez SIMPLE dans la liste Language.

Dans le champ Expression, saisissez "New message" comme corps du message.

Rptez cette tape pour configurer le corps du message pour direct:a et direct:b en tant que "message A"
et "message B" respectivement.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 199


Scnario : Router un message vers de multiples endpoints

Dans le code affich ci-dessus, le message source est rout depuis (from) le fichier source
"Source_file_cFile_1" vers (.to) direct:a et direct:b via "cMulticast_1". Le message est
trait par le composant "cProcessor_1" et reoit le corps de message "New message" par le
"cSetBody_3". Le bloc .end de la route est trait par le "cProcessor_2". Le message provenant de (from)
"direct_a_cMessagingEndpoint_1" reoit le corps de message "message A" par le "cSetBody_1" et est
trait par le composant "cProcessor_3". Le message de direct:b est trait de la mme manire.

2. Cliquez sur la vue Run pour l'afficher, puis cliquez sur le bouton Run afin de lancer l'excution de votre
Route. Vous pouvez galement appuyer sur la touche F6 pour l'excuter.

200 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router un message vers de multiples endpoints

Rsultat : Le message du fichier source est Hello world!. Le message rout vers direct:a et direct:b reoit le
corps de message message A et message B respectivement. Le message du bloc de fin de cette Route est New
message, configur par le composant nomm Set_new_body.

Guide de rfrence des Composants Mediation de Talend ESB 201


cPipesAndFilters

cPipesAndFilters

Proprits du cPipesAndFilters
Famille de composant Routing
Fonction Le composant cPipesAndFilters divise le traitement d'un message en une squence d'instances
d'endpoints indpendants, pouvant tre relis entre eux.
Objectif Ce composant vous permet de diviser le routage d'un message en une srie d'tapes de traitement
indpendantes.
Basic settings URI list Cliquez sur le bouton [+] pour ajouter de nouvelles lignes pour les URIs
identifiant les endpoints.
Utilisation Le cPipesAndFilters est gnralement utilis au milieu d'une Route.
Limitation n/a

Scnario : Utiliser un cPipesAndFilters pour traiter


une tche en squence
Dans ce scnario, un composant cPipesAndFilters est utilis pour qu'un message envoy d'un endpoint metteur
passe par une phase A et une phase B. Lorsque ces deux phases sont termines, le message est rout vers un
systme de fichier, l'endpoint rcepteur des messages.

Dposer et relier les composants


1. Dans le dossier Messaging de la Palette, dposez deux composants cFile dans l'espace de modlisation
graphique, un comme metteur de message et l'autre comme rcepteur de message et nommez-les
respectivement Sender et Receiver afin de mieux identifier leur rle dans la Route.

2. Du dossier Routing, dposez un composant cPipesAndFilters dans l'espace de modlisation graphique, entre
les deux fichiers cFile.

3. Du dossier Messaging, dposez deux cMessagingEndpoint dans l'espace de modlisation graphique, un


comme endpoint de l'tape A et l'autre comme endpoint de l'tape B. Nommez-les Stage_A et Stage_B
respectivement, afin de mieux identifier leur rle dans la Route.

202 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cPipesAndFilters pour traiter une tche en squence

4. Du dossier Processor, dposez trois cProcessor dans l'espace de modlisation graphique pour monitorer
les messages reus par les endpoints rcepteur, de l'tape A et de l'tape B et nommez-les respectivement
Monitor_Receiver, Monitor_stage_A, et Monitor_stage_B afin de mieux identifier leur rle dans la Route.

5. Cliquez-droit sur le composant cFile nomm Sender, slectionnez Row > Route dans le menu contextuel et
cliquez sur le cPipesAndFilters.

Rptez cette tape pour configurer les autres liens Row > Route.

Configurer les composants


1. Double-cliquez sur le composant cFile nomm Sender pour ouvrir sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs au dossier contenant les fichiers source ou parcourez votre
systme jusqu' celui-ci.

3. Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers source. Laissez les autres paramtres
tels qu'ils sont.

4. Rptez ces tapes pour configurer les chemins d'accs aux fichiers de sortie ainsi que le type d'encodage,
dans la vue Basic settings du composant cFile nomm Receiver.

5. Double-cliquez sur le cPipesAndFilters pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 203


Scnario : Utiliser un cPipesAndFilters pour traiter une tche en squence

6. Cliquez sur le bouton [+] afin d'ajouter deux lignes la table URI list et saisissez "direct:a" dans la
premire ligne, puis "direct:b" dans la seconde ligne pour dfinir les URIs de l'tape A et de l'tape B
travers lesquelles les messages vont passer.

7. Double-cliquez sur le cMessagingEndpoint nomm Stage_A pour configurer les proprits simples du
composant, dans sa vue Basic settings et dfinir l'URI de l'tape A.

Rptez cette tape pour dfinir l'URI de l'tape B dans la vue Basic settings du cMessagingEndpoint
nomm Stage_B.

8. Double-cliquez sur le composant cProcessor nomm Monitor_Receiver pour ouvrir sa vue Basic settings et
personnaliser le code dans la zone Code pour afficher le nom des fichiers reus par le rcepteur, comme suit :
System.out.println("Message sent to Receiver: "+
exchange.getIn().getHeader("CamelFileName"));

Rptez cette tape pour personnaliser le code dans les deux autres composants cProcessor afin d'afficher le
nom des fichiers des messages reus dans les tapes A et B, respectivement :
System.out.println("Message sent to stage A: "+
exchange.getIn().getHeader("CamelFileName"));

System.out.println("Message sent to stage B: "+


exchange.getIn().getHeader("CamelFileName"));

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich dans le code, les messages envoys depuis (from) l'metteur (Sender) sont redirigs vers
des endpoints identifis par direct:a et direct:b par le cPipesAndFilters_1 avant d'tre routs par le
rcepteur (Receiver).

2. Appuyez sur F6 pour excuter votre Route.

Rsultat : La livraison du message passe par l'tape A (stage A) puis par l'tape B (stage B) avant d'atteindre
le rcepteur (Receiver).

204 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser un cPipesAndFilters pour traiter une tche en squence

Guide de rfrence des Composants Mediation de Talend ESB 205


cRecipientList

cRecipientList

Proprits du cRecipientList
Famille de composant Routing
Fonction Le composant cRecipientList route des messages vers une liste de destinataires dfinie par
l'utilisateur. Il peut galement traiter le message avant de l'envoyer aux destinataires et assembler
les rponses des sous-messages en un seul message de sortie.
Objectif Le cRecipientList vous permet de router des messages vers un nombre de destinataires
dynamiquement spcifis.
Basic settings Language Slectionnez dans la liste le langage de l'expression saisir.
Expression Saisissez l'expression retournant de multiples endpoints.
Use Result Class Type Cette option apparat lorsque XPath est slectionn dans la liste
Language. Cochez cette case pour configurer le type de rsultat des
sous-messages dans le champ qui apparat.
Add Namespaces Cette option apparat lorsque XPath est slectionn dans la liste
Language.

Cochez cette case pour ajouter des espaces de noms pour l'expression
Xpath. Cliquez sur le bouton [+] pour ajouter autant d'espaces de noms
que ncessaire dans la table et dfinissez le prfixe et l'URI dans les
colonnes correspondantes.
Use Delimiter Cochez cette case afin de personnaliser le sparateur d'Expression.
Saisissez le caractre, la chane de caractre ou l'expression rgulire
utiliser comme sparateur d'expressions dans le champ Delimiter.
Use Strategy Cochez cette case pour utiliser une stratgie d'agrgation afin
d'assembler les rponses des sous-messages en un seul message de
sortie des destinataires. Saisissez l'ID de la stratgie d'agrgation dans
le champ.
Parallel Processing Cochez cette case pour envoyer simultanment le message aux
diffrents destinataires.
Use ExecutorService Cette option apparat lorsque la case Parallel Processing est coche.
Cochez cette case pour utiliser un pool de threads personnalis pour
le traitement parallle. Spcifiez le pool de threads dans le champ
ExecutorService.
Stop On Exception Cochez cette case pour arrter immdiatement le traitement lorsqu'une
exception survient.
Ignore Invalid Cochez cette case pour ignorer les endpoints invalides.
Endpoints
Streaming Cochez cette case pour traiter les rponses des sous-messages dans
l'ordre de rception par les destinataires. Si cette option est dcoche,
les rponses seront traites dans l'ordre spcifi dans le champ
Expression.
Timeout Spcifiez, en millisecondes, le temps de dlai avant suspension. Si le
message n'est pas rout vers les destinataires et trait durant la priode
donnes, la suspension se produit et le routage des messages s'arrte.
Use On-Prepare Cochez cette case pour utiliser un processor personnalis afin de
Processor prparer la copie de l'change que chaque destinataire reoit. Saisissez
l'ID du processor dans le champ qui apparat. Vous pouvez utiliser le
cBeanRegister pour enregistrer un bean Java en tant que processor.
Share Unit of Work Cochez cette case pour partager l'unit de travail entre l'change parent
et chaque destinataire de l'change. Consultez l'option du mme nom
du composant cSplitter pour plus d'informations.

206 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router un message vers de nombreux destinataires

Utilisation Le composant cRecipientList est un composant intermdiaire.

Scnario : Router un message vers de nombreux


destinataires
Dans ce scnario, un composant cRecipientList est utilis pour router un message vers une liste de destinataires.

Pour construire la Route, procdez comme dans les sections suivantes.

Dposer et relier les composants


1. Glissez-dposez les composants de la Palette dans l'espace de modlisation graphique : un cFile, un
cSetHeader, un cRecipientList, deux cMessagingEndpoint et deux cProcessor. Renommez le composant
cFile en Read_Input. Changez le nom des deux cMessagingEndpoint en Recipient_A et Recipient_B,
respectivement. Renommez les deux composants cProcessor en Print_File_Name_A et Print_File_Name_B,
respectivement.

2. Reliez le Read_Input au cSetHeader l'aide d'un lien Row > Route.

3. Reliez le composant cSetHeader au cRecipientList l'aide d'un lien Row > Route.

4. Reliez le Recipient_A au composant Print_File_Name_A l'aide d'un lien Row > Route.

5. Reliez le Recipient_B au Print_File_Name_B l'aide d'un lien Row > Route.

Configurer les composants


1. Double-cliquez sur le composant cFile pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 207


Scnario : Router un message vers de nombreux destinataires

2. Dans le champ Path, saisissez le chemin d'accs au message source message, par exemple "E:/data/input".
Laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le cSetHeader pour ouvrir sa vue Basic settings.

4. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez le nom de l'en-tte, par exemple "ListOfRecipients".

Dans la liste droulante Language, choisissez Constant.

Dans le champ Value, saisissez les URIs des endpoints, par exemple "direct:a,direct:b".

5. Double-cliquez sur le cRecipientList pour ouvrir sa vue Basic settings.

208 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Router un message vers de nombreux destinataires

6. Dans la liste Language, slectionnez Header.

Dans le champ Expression, saisissez le nom de l'en-tte contenant la liste des destinataires,
"ListOfRecipients".

7. Double-cliquez sur le composant Recipient_A pour ouvrir sa vue Basic settings et dfinir l'URI du destinataire
A.

Effectuez la mme opration pour le composant Recipient_B et saisissez l' URI du destinataire B.

8. Double-cliquez sur Print_File_Name_A pour ouvrir sa vue Basic settings. Dans le champ Code, saisissez le
code ci-dessous pour afficher le message reu par le composant Recipient_A.

System.out.println("Recipient_a just
downloaded:"+exchange.getIn().getHeader("CamelFileName"));

Effectuez la mme opration pour le Print_File_Name_B et saisissez le code ci-dessous dans son champ
Code :

System.out.println("Recipient_b just
downloaded:"+exchange.getIn().getHeader("CamelFileName"));

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Guide de rfrence des Composants Mediation de Talend ESB 209


Scnario : Router un message vers de nombreux destinataires

Visualiser le code excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Comme affich ci-dessus, la route obtient le message de Read_Input_cFile_1 et configure les


en-ttes (.setHeader("ListOfRecipients")), l'aide de .constant("direct:a,direct:b"). Le
cRecipientList_1 lit l'en-tte (.header("ListOfRecipients")) et route le message aux destinataires
qu'il contient.

2. Appuyez sur F6 pour excuter la Route.

Ce message est envoy aux destinataires inclus dans l'en-tte.

210 Guide de rfrence des Composants Mediation de Talend ESB


cRoutingSlip

cRoutingSlip

Proprits du cRoutingSlip
Famille de composant Routing
Fonction Le composant cRoutingSlip vous permet de router un ou des message(s) conscutivement via
une srie d'tapes de traitement, avec une squence d'tapes inconnues lors de la cration et
variable pour chaque message.
Objectif Le cRoutingSlip est utilis pour router conscutivement un ou des message(s) vers une srie
d'endpoints.
Basic settings Header name Saisissez le nom de l'en-tte du message comme dfini dans le
composant prcdent, cSetHeader, mySlip par dfaut. L'en-tte
doit comporter une liste d'URIs d'endpoint vers lesquelles vous
souhaitez router vos messages.
URI delimiter Saisissez le dlimiteur utilis pour sparer diffrentes URIs
d'endpoint contenues dans l'en-tte du message, virgule (,) par
dfaut.
Utilisation Le cRoutingSlip est utilis comme composant intermdiaire ou composant de fin dans une sous-
route. Il suit toujours un cSetHeader, qui dfinit un en-tte pour chaque message comprenant
une liste d'URIs d'endpoints.
Limitation n/a

Scnario 1 : Router un message conscutivement


une srie d'endpoints
Dans ce scnario, des messages d'un systme de fichiers sont routs aprs une srie d'endpoints, selon les URIs
comprises dans l'en-tte du message.

Dposer et relier les composants


Ce scnario ncessite un composant cFile en tant qu'metteur de message, un cSetHeader pour dfinir
une srie d'endpoints, un cRoutingSlip pour router conscutivement des messages vers des endpoints, trois
cMessagingEndpoint pour rcuprer les messages routs vers les endpoints et trois composants cProcessor afin
de monitorer les messages routs vers les endpoints de messaging connects.

Guide de rfrence des Composants Mediation de Talend ESB 211


Scnario 1 : Router un message conscutivement une srie d'endpoints

1. Dans la Palette, dveloppez le dossier Messaging, dposez un cFile et trois cMessagingEndpoint dans
l'espace de modlisation graphique et renommez-les comme ci-dessus, afin de mieux identifier leur rle dans
la Route.

2. De la famille Transformation, dposez un composant cSetHeader dans l'espace de modlisation graphique


et renommez-le afin de mieux identifier son rle dans la Route.

3. De la famille Routing, dposez un cRoutingSlip dans l'espace de modlisation graphique et renommez-le


pour mieux identifier son rle.

4. De la famille Processor, dposez trois cProcessor dans l'espace de modlisation graphique et renommez-les
pour mieux identifier leur rle au sein de la Route.

5. Cliquez-droit sur le composant cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cSetHeader.

6. Cliquez-droit sur le cSetHeader, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cRoutingSlip.

7. Rptez cette opration pour connecter les cMessagingEndpoint aux composants cProcessor
correspondants.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile nomm Sender pour afficher sa vue Basic settings.

212 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 1 : Router un message conscutivement une srie d'endpoints

2. Dans le champ Path, saisissez le chemin d'accs au dossier contenant les fichiers source Beijing.xml,
London.xml, Paris.xml et Washington.xml, ou parcourez votre systme jusqu' ce dossier.

Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers source. Laissez les autres paramtres
tels qu'ils sont.

3. Double-cliquez sur le composant cSetHeader nomm Set_endpoints pour afficher sa vue Basic settings.

4. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez le nom de l'en-tte que vous souhaitez ajouter chaque message.

Dans ce scnario, utilisez simplement mySlip, la valeur par dfaut du champ Header name, dans le composant
cRoutingSlip.

5. Dans la liste Language, slectionnez Constant ou Simple et, dans le champ Value, saisissez les URIs vers
lesquelles vous souhaitez que les messages soient routs de manire squentielle, spares par une virgule,
la valeur par dfaut du champ URI delimiter, dans le composant cRoutingSlip.

Dans ce scnario, le message doit tre rout d'abord vers l'endpoint c, puis l'endpoint a et finalement
l'endpoint b.

6. Double-cliquez sur le composant cRoutingSlip nomm Routing_slip pour afficher sa vue Basic settings
dans l'onglet Component et dfinir l'en-tte du message dans le champ Header name ainsi que le dlimiteur
d'URIs, dans le champ URI delimiter.

Dans ce scnario, utilisez les paramtres par dfaut.

7. Double-cliquez sur le composant cMessagingEndpoint nomm Endpoint_a pour afficher sa vue Basic
settings et saisissez l'URI de destination de vos messages dans le champ URI.

Utilisez ce composant pour rcuprer le message rout vers l'URI direct:a.

Guide de rfrence des Composants Mediation de Talend ESB 213


Scnario 1 : Router un message conscutivement une srie d'endpoints

Rptez cette tape pour configurer les URIs des endpoint dans les autres composants cMessagingEndpoint
: direct:b et direct:c respectivement.

8. Double-cliquez sur le composant cProcessor nomm Monitor_a pour afficher sa vue Basic settings dans
l'onglet Component et personnalisez le code afin que la console affiche les informations comme vous le
souhaitez.

Utilisez ce composant pour monitorer les messages routs vers l'endpoint connect a et afficher le nom de
fichier, personnalisez donc le code comme suit :

System.out.println("Message received on endpoint a: "+


exchange.getIn().getHeader("CamelFileName"));

Rptez cette tape pour personnaliser le code des deux autres cProcessor, pour les messages routs vers les
endpoints connects b et c respectivement.

System.out.println("Message received on endpoint b: "+


exchange.getIn().getHeader("CamelFileName"));

System.out.println("Message received on endpoint c: "+


exchange.getIn().getHeader("CamelFileName"));

9. Appuye sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Dans ce morceau de code, les messages provenant de l'metteur reoivent un en-tte ajout par la
mthode .setHeader comportant une liste d'URIs ("direct:c,direct:a,direct:b") et sont routs vers
le cRoutingSlip_1.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.

Vous pouvez galement appuyer sur F6 pour l'excuter.

214 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Router chaque message selon des conditions vers une srie d'endpoints

Rsultat : Les messages source sont routs conscutivement vers les endpoints dfinis : c, a puis b.

Scnario 2 : Router chaque message selon des


conditions vers une srie d'endpoints
Dans ce scnario, bas sur le prcdent, chaque message d'un systme de fichier est rout conscutivement vers
diffrents endpoints selon le nom de la ville qu'il contient.

Tous les fichiers utiliss dans ce scnario sont nomms d'aprs le nom de la ville qu'ils contiennent. Voici des
extraits de deux exemples :

Beijing.xml :

<person>
<firstName>Nicolas</firstName>
<lastName>Yang</lastName>
<city>Beijing</city>
</person>

Paris.xml :

<person>
<firstName>Pierre</firstName>
<lastName>Dupont</lastName>
<city>Paris</city>
</person>

Un Bean Java prdfini, setEndpoints, est appel dans ce scnario pour retourner des URIs d'endpoints selon le
nom de la ville contenu dans chaque message, afin que les messages soient routs comme suit :

Le message contenant le nom de la ville de Paris sera d'abord rout vers l'endpoint a, puis vers l'endpoint b
et finalement vers l'endpoint c.

Le message contenant le nom de la ville de Beijing sera d'abord rout vers l'endpoint c puis vers l'endpoint a
et finalement vers l'endpoint b.

Les autres messages seront routs vers l'endpoint b puis vers l'endpoint c.

Guide de rfrence des Composants Mediation de Talend ESB 215


Scnario 2 : Router chaque message selon des conditions vers une srie d'endpoints

Pour plus d'informations concernant la cration et l'utilisation de Beans Java, consultez le Guide utilisateur du
Studio Talend.

package beans;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setEndpoints {


public String helloExample(Document document) {
NodeList cities = document.getDocumentElement().getElementsByTagName(
"city");
Element city = (Element) cities.item(0);
String textContent = city.getTextContent();
if ("Paris".equals(textContent)) {
return "direct:a,direct:b,direct:c";
} else if ("Beijing".equals(textContent)) {
return "direct:c,direct:a,direct:b";
} else
return "direct:b,direct:c";
}
}

Dposer et relier les composants


Dans ce scnario, rutilisez la Route configure dans le scnario prcdent, sans ajouter ou supprimer de composant
et sans modifier de connexion.

Configurer les composants et les connexions


Dans ce scnario, configurez le composant cSetHeader pour appeler le Bean Java prdfini et laissez les
paramtres des autres composants tels qu'ils sont dans le scnario prcdent.

1. Double-cliquez sur le composant cSetHeader pour afficher sa vue Basic settings.

2. Slectionnez Bean dans la liste Language et, dans le champ Value, spcifiez le Bean Java retournant les
URIs des endpoints. Dans ce scnario, saisissez beans.setEndpoints.

3. Appuyez sur Ctrl+S pour sauvegarder votre Route.

216 Guide de rfrence des Composants Mediation de Talend ESB


Scnario 2 : Router chaque message selon des conditions vers une srie d'endpoints

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Dans ce morceau de code, les messages provenant de l'metteur reoivent un en-tte ajout par la mthode
.setHeader comportant une liste d'URIs retournes par la classe beans.setEndpoints.class, puis routes
vers le cRoutingSlip_1.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.

Vous pouvez galement appuyez sur F6 pour l'excuter.

Rsultat : Les sources sont routes conscutivement vers les endpoints dfinis : le message contenant le nom
de la ville de Beijing est d'abord rout vers l'endpoint c, puis vers l'endpoint a et finalement vers l'endpoint b
; le message contenant le nom de la ville de Paris est rout d'abord vers l'endpoint a, puis vers l'endpoint b
et finalement vers l'endpoint c. Les autres messages sont routs vers l'endpoint b puis vers l'endpoint c.

Guide de rfrence des Composants Mediation de Talend ESB 217


cSplitter

cSplitter

Proprits du cSplitter
Famille de composant Routing
Fonction Le composant cSplitter divise un message en plusieurs sous-messages en respectant une
condition.
Objectif Le cSplitter spare des lments multiples d'un message afin qu'ils puissent tre grs et traits
diffremment dans des routes individuelles.
Basic settings Language Slectionnez le langage de l'expression que vous souhaitez
utiliser pour filtrer vos messages, entre Constant, EL, Groovy,
Header, Javascript, JoSQL, JXPath, MVEL, None, OGNL,
PHP, Property, Python, Ruby, Simple, SpEL, SQL, XPath, et
XQuery.
Correlation expression/ Saisissez l'expression utiliser pour diviser les messages.
Expression
Correlation expression/Use Cette option apparat lorsque XPath est slectionn dans la liste
Result Class Type Language.

Cochez cette case pour configurer le type de rsultat des sous-


messages dans le champ qui apparat. Les objets par dfaut
natifs XML org.w3c.dom.NodeList seront utiliss si rien n'est
spcifi.
Correlation expression/Add Cette option apparat lorsque XPath est slectionn dans la liste
Namespaces Language.

Cochez cette case pour ajouter des espaces de noms pour


l'expression Xpath. Cliquez sur [+] pour ajouter autant d'espaces
de noms que ncessaire dans la table et configurer le prfixe et
l'URI dans les colonnes correspondantes.
Use Strategy Cochez cette case pour vous rfrer une stratgie d'agrgation
pour assembler les rponses des sous-messages en un seul message
en sortie du composant. Saisissez l'ID de la stratgie d'agrgation
dans le champ Strategy. Les rponses des sous-messages seront
agrges dans leur ordre d'arrive, si l'option Streaming est
active. Sinon, les rponses des sous-messages seront agrges
dans l'ordre dans lequel elles ont t divises.
Parameters/Parallel Cochez cette case pour traiter les sous-messages simultanment.
Processing Le process d'appel attend jusqu' ce que tous les sous-messages
aient t entirement traits avant de continuer.
Parameters/Stop on Cochez cette case pour arrter le traitement ds qu'une exception
Exception se produit.
Parameters/Streaming Cochez cette case pour diviser le message d'entre en diffrentes
parties. Il est recommand d'activer cette option lorsque vous
traitez des messages volumineux.
Parameters/Share Unit of Cochez cette case pour partager la charge de travail entre l'change
Work parent et chaque change divis. Pour plus d'informations et un
exemple d'utilisation de cette option, consultez le site Web http://
camel.apache.org/splitter.html (en anglais).
Parameters/Timeout Spcifiez dlai avant suspension, en millisecondes. Si le message
n'est pas divis et trait durant la priode donne, la suspension se
dclenche et le traitement s'arrte.
Utilisation Le cSplitter est utilis comme composant intermdiaire dans une Route.

218 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cSplitter pour diviser un message et agrger les rponses des sous-messages

Connections split Slectionnez ce lien pour router des messages vers l'endpoint
suivant.
Route Slectionnez ce lien pour router tous les messages de l'metteur
vers l'endpoint suivant.
Limitation n/a

Scnario : Utiliser le cSplitter pour diviser un message


et agrger les rponses des sous-messages
Dans ce scnario, le composant cSplitter est utilis pour diviser un message et agrger les rponses des sous-
messages.

Un Bean Java prdfini, AppendAggregator est appel comme stratgie pour agrger les rponses des sous-
messages. Pour plus d'informations concernant la cration et l'utilisation des Beans Java, consultez le Guide
utilisateur du Studio Talend.

package beans;
import org.apache.camel.Exchange;
import org.apache.camel.processor.aggregate.AggregationStrategy;

public class AppendAggregator implements AggregationStrategy {

public Exchange aggregate(Exchange oldEx, Exchange newEx) {


if(oldEx==null){
return newEx;
}
String oldBody = oldEx.getIn().getBody(String.class);
String newBody = newEx.getIn().getBody(String.class);
newEx.getIn().setBody(oldBody + "\n" + newBody);
return newEx;
}
}

Construire le Job

Guide de rfrence des Composants Mediation de Talend ESB 219


Scnario : Utiliser le cSplitter pour diviser un message et agrger les rponses des sous-messages

1. Dans la Palette, dveloppez la famille Context. Glissez-dposez un cBeanRegister dans l'espace de


modlisation graphique.

2. De la famille Messaging, glissez-dposez un cTimer et deux cDirect dans l'espace de modlisation


graphique.

3. De la famille Transformation, glissez-dposez deux cSetBody dans l'espace de modlisation graphique.

4. De la famille Routing, glissez-dposez un cSplitter dans l'espace de modlisation graphique.

5. De la famille Miscellaneous, glissez-dposez deux cLog dans l'espace de modlisation graphique.

6. Renommez les composants afin de mieux identifier leur rle au sein de la Route.

7. Cliquez-droit sur le composant cSplitter, slectionnez Row > Split dans le menu contextuel puis cliquez sur
le composant cDirect nomm directA_sender.

8. Cliquez-droit sur le cSplitter nouveau, slectionnez Row > Route dans le menu contextuel puis cliquez
sur le composant cLog nomm Log_Finished.

9. De la mme manire, reliez les autres composants de la Route l'aide de liens Row > Route.

Configurer les composants et les connexions


1. Double-cliquez sur le cBeanRegister nomm appendAggregator pour afficher sa vue Basic settings.

2. Dans le champ Id, saisissez "appendAggregator". Slectionnez l'option Simple et, dans le champ Class
Name, saisissez le nom du Benan Java prdfini, beans.AppendAggregator dans ce scnario, appel plus
tard par le composant cSplitter.

3. Double-cliquez sur le cTimer nomm Starter pour afficher sa vue Basic settings.

4. Dans le champ Repeat, saisissez 1 pour dclencher l'change de messages. Laissez les autres options
configures par dfaut.

220 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cSplitter pour diviser un message et agrger les rponses des sous-messages

5. Double-cliquez sur le cSetbody nomm Set_body pour afficher sa vue Basic settings.

6. Slectionnez SIMPLE dans la liste Language et saisissez "thing1, thing2, thing3" dans le champ
Expression comme corps du message.

7. Configurez le composant cSetbody nomm Set_new_body de la mme manire afin de paramtrer le nouveau
corps des sous-messages. Dans le champ Expression, saisissez *** SPLIT: ${body} pour ajouter ***
SPLIT: avant l'ancien corps de message.

8. Double-cliquez sur le cSplitter pour afficher sa vue Basic settings.

9. Dans ce scnario, vous aller diviser le corps du message en sous-messages, l'aide du sparateur ,.

Slectionnez Simple dans la liste Language et saisissez ${body} dans le champ Expression.

Cochez la case Use Strategy. Dans le champ Strategy, saisissez l'ID du Bean Java pr-enregistr
appendAggregator, utilis pour agrger les rponses des sous-messages.

Guide de rfrence des Composants Mediation de Talend ESB 221


Scnario : Utiliser le cSplitter pour diviser un message et agrger les rponses des sous-messages

10. Double-cliquez sur le composant cDirect nomm directA_sender pour afficher sa vue Basic settings.

11. Cliquez sur le bouton [...] et slectionnez le nud directA_receiver pour recevoir les sous-messages.

12. Double-cliquez sur le composant cDirect nomm directA_receiver pour afficher sa vue Basic settings.

13. Dans le champ Name, saisissez "directA" pour identifier l'endpoint.

14. Laissez les paramtres par dfaut des composants cLog nomms Log_Finished et Log_Split. Le composant
Log_Finished enregistre les rponses agrges des sous-messages. Le Log_Split enregistre les sous-messages.

15. Appuyez sur Ctrl+S afin de sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour voir le code gnr.

222 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Utiliser le cSplitter pour diviser un message et agrger les rponses des sous-messages

Comme affich dans le code, la Route de message est construite d'un (from) endpoint (.to) un autre. Le
message envoy au cSplitter_1 est divis par la mthode .split().simple("${body}") et les rponses
des sous-messages sont agrges par la mthode .aggregationStrategyRef("appendAggregator").

2. Cliquez sur la vue Run pour l'afficher, puis cliquez sur le bouton Run afin de lancer l'excution de votre
Route. Vous pouvez galement presser la touche F6 pour l'excuter.

Rsultat : Le message source est divis en sous-messages l'aide du sparateur , et chaque sous-message
obtient un nouveau corps de message. Les rponses des sous-messages sont agrges en un seul message,
en sortie du composant cSplitter.

Guide de rfrence des Composants Mediation de Talend ESB 223


cThrottler

cThrottler

Proprits du cThrottler
Famille de composant Routing
Fonction Le composant cThrottler est conu pour limiter le nombre de messages vers un endpoint
spcifique.
Objectif Le cThrottler vous permet de limiter le nombre de messages vers un endpoint spcifique afin
d'empcher cet endpoint d'tre surcharg.
Basic settings Request per period Nombre de messages pouvant tre passs au cThrottler durant une
priode de temps dfinie.
Set time period Cochez cette case pour dfinir la valeur de la priode de temps (en
millisecondes) et activer la limite.
Use asynchronous Si cette case est coche, les messages retards seront routs de manire
delaying asynchrone l'aide d'un pool de threads planifis.
Utilisation Le cThrottler vous permet de limiter le nombre de messages vers un endpoint spcifique afin
qu'il ne soit pas surcharg.
Connections throttler Slectionnez ce lien pour router les messages ayant t limits vers
l'endpoint suivant.
Route Slectionnez ce lien pour router tous les messages de l'metteur vers
l'endpoint suivant.
Limitation n/a

Scnario : Limiter le flux de messages


Dans ce scnario, un composant cThrottler est utilis pour rduire le nombre de messages dans un flux durant
une priode de temps dfinie.

Pour construire la Route, procdez comme dans les sections suivantes.

224 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Limiter le flux de messages

Dposer les composants et les relier


1. Dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un cThrottler,
un cFile et deux cProcessor. Renommez le composant cFile en Read_Output. Changez le nom des deux
cProcessor en Print_File_Name et Print_File_Content, respectivement.

2. Reliez le Read_Output au cThrottler l'aide d'un lien Row > Route.

3. Reliez le cThrottler au Print_File_Name l'aide d'un lien Row > Throttler et au Print_File_Content
l'aide d'un lien Row > Route.

Configurer les composants


1. Double-cliquez sur le Read_Output pour ouvrir sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs au message source, par exemple "E:/data/output". Laissez
les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le cThrottler pour ouvrir sa vue Basic settings.

4. Dans le champ Request per period, saisissez le nombre de messages autoriss par priode, par exemple 1.

Dans le champ Set time period, saisissez la valeur de la priode, par exemple 8000.

5. Double-cliquez sur le Print_File_Name pour ouvrir sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 225


Visualiser du code et excuter la Route

6. Dans le champ Code, saisissez le code ci-dessous pour obtenir le nom des messages passant le throttler.

System.out.println("The file that passes throttler is:


"+exchange.getIn().getHeader("CamelFileName"));

7. Double-cliquez sur le Print_File_Content pour ouvrir sa vue Basic settings.

8. Dans le champ Code, saisissez le code ci-dessous pour obtenir le contenu du message passant le throttler.

System.out.println("The content of " +exchange.getIn().getHeader("CamelFileName")+ "


is: "
+exchange.getIn().getBody(String.class));

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

226 Guide de rfrence des Composants Mediation de Talend ESB


Visualiser du code et excuter la Route

Comme affich ci-dessus, les messages de Read_Output passent le cThrottler_1, avec seulement (1)
message autoris quitter le throttler durant chaque priode de temps (timePeriodMillis(8000)). Pendant
ce temps, le nom du fichier et le contenu du message passs dans le throttler sont affichs via les deux
cProcessor.

2. Appuyez sur F6 pour excuter la Route.

Comme ci-dessous, un fichier File_A.txt est livr durant la premire priode de temps. Durant la deuxime,
un fichier File_B.txt est livr.

Guide de rfrence des Composants Mediation de Talend ESB 227


cWireTap

cWireTap

Proprits du cWireTap
Famille de composant Routing
Fonction Le composant cWireTap vous permet de router des messages vers une URI dfinie par
l'utilisateur pendant qu'ils sont envoys l'endpoint original. Le composant vous permet
galement d'alimenter un nouveau message cette adresse.
Objectif Le cWireTap est utilis pour router des messages vers un endpoint spar en mme temps qu'ils
sont passs leur dernire destination.
Basic settings URI L'URI de l'endpoint o envoyer le message cout.
Populate new exchange Cochez cette case pour alimenter un nouveau message l'URI
dfinie.
Populate Type Cette option apparat lorsque la case Populate new exchange
est coche. Le type Populate Type peut tre Expression ou
Processor.
Expression : Utiliser une expression vous permet de dfinir le
corps du message du nouvel change.

Language : Slectionnez le langage de l'expression que vous


souhaitez utiliser pour dfinir le corps du message, parmi
Constant, Header, None, Property, Simple et XPath.

Expression TXT : Saisissez l'expression pour dfinir le corps du


message.
Processor : Utiliser le cProcessor vous permet de spcifier
comment l'change est aliment lors de la configuration des
proprits, des en-ttes, etc. du message avec un morceau de code
Java dans le champ Code.
Copy the original message Cochez cette case pour crer une copie identique de l'change
original. Si cette case n'est pas coche, seul un nouvel change avec
le mme nom d'endpoint sera cr. Le corps du message et les en-
ttes sont null.

Le modle d'change est InOnly pour les deux conditions.


Utilisation Le cWireTap est gnralement utilis en tant que composant intermdiaire dans une Route.

Scnario : Ecouter un message dans une Route


Dans ce scnario, un composant cWireTap est utilis pour router un message vers un endpoint spar pendant
qu'il est rout vers son ultime destination.

228 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Ecouter un message dans une Route

Dposer et relier les composants


1. Dans la Palette, dveloppez le dossier Messaging et dposez un composant cFile ainsi que deux
cMessagingEndpoint dans l'espace de modlisation graphique.

2. Dveloppez le dossier Routing et dposez un cWireTap dans l'espace de modlisation graphique.

3. Dveloppez le dossier Processor et dposez un composant cJavaDSLProcessor ainsi que deux cProcessor
dans l'espace de modlisation graphique.

4. Cliquez-droit sur le composant cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
cWireTap.

5. Rptez cette opration pour relier les composants comme dans la capture d'cran.

6. Renommez les composants afin de mieux identifier leur fonctionnalit.

Configurer les composants


1. Double-cliquez sur le composant cFile nomm Source pour afficher sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs au fichier d'entre ou parcourez votre systme jusqu' celui-
ci. Dans ce scnario, le fichier spcifi dans le chemin d'accs est Hello.txt et contient la phrase Hello World!.
Laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le composant cWireTap pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 229


Scnario : Ecouter un message dans une Route

4. Saisissez "direct:a" dans le champ URI pour router le message cout vers cet endpoint.

Cochez la case Populate new exchange, slectionnez Processor dans la zone Populate Type puis saisissez
le code suivant dans le champ Code pour afficher le nom de fichier du message cout ainsi que son contenu
dans la console :

System.out.println("\nMessage wiretapped: "+


exchange.getIn().getHeader("CamelFileName"));
System.out.println("Message content: "+
exchange.getIn().getBody(String.class)+"\n");

5. Double-cliquez sur le composant cJavaDSLProcessor pour afficher sa vue Basic settings dans la vue
Component.

6. Dans le champ Code, saisissez le code Java .to("direct:b") pour dfinir l'URI de l'endpoint vers lequel
router le message original.

7. Double-cliquez sur le composant cMessagingEndpoint nomm Endpoint_a pour afficher sa vue Basic
settings. Saisissez "direct:a" dans le champ URI afin de rcuprer le message rout vers cet endpoint.

Rptez cette opration pour configurer l'URI de l'endpoint pour Endpoint_b.

8. Double-cliquez sur le composant cProcessor nomm Monitor_a pour afficher sa vue Basic settings. Saisissez
le code suivant dans le champ Code pour afficher le nom de fichier du message rout vers l'Endpoint_a.

230 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Ecouter un message dans une Route

System.out.println("Message on endpoint a: "+


exchange.getIn().getHeader("CamelFileName"));

Configurez l'autre composant cProcessor de la mme manire afin d'afficher le nom de fichier du message
rout vers l'Endpoint_b.

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Dans le code partiellement affich, tout message provenant (from) de l'endpoint Source sera cout par
.wireTap et rout vers "direct:a". Le nom du fichier et le contenu de chaque message cout est affich
dans la console. Le message original est rout vers (.to) un endpoint identifi par l'URI "direct:b", dfini
dans le cJavaDSLProcessor_1.

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de la Route. Vous
pouvez galement appuyez sur F6 pour l'excuter.

Guide de rfrence des Composants Mediation de Talend ESB 231


Scnario : Ecouter un message dans une Route

Rsultat : Le message source est cout et rout vers l'endpoint a et vers l'endpoint b.

232 Guide de rfrence des Composants Mediation de Talend ESB


Composants Transformation
Ce chapitre passe en revue les principaux composants prsents dans la famille Transformation de la Palette, dans
la perspective Mediation du Studio Talend.

La famille Transformation regroupe les composants excutant des processus de transformation de donnes.

Guide de rfrence des Composants Mediation de Talend ESB


cContentEnricher

cContentEnricher

Proprits du cContentEnricher
Famille de composant Transformation
Fonction Le composant cContentEnricher est conu pour utiliser un consommateur ou un producteur
afin d'obtenir des donnes supplmentaires.
Objectif Le cContentEnricher vous permet d'enrichir un message.
Basic settings Resource URI Cette option fait rfrence la destination du message si la case using
a producer est coche ; elle fait rfrence la source partir de
laquelle un message sera obtenu si la case using a consumer est
coche.
Using a producer Cochez cette case pour utiliser un producteur pour fournir des
donnes supplmentaires, c'est--dire pour envoyer un message
l'URI dfinie.
Using a consumer Cochez cette case pour utiliser un consommateur pour obtenir des
donnes supplmentaires, c'est--dire effectuer une requte sur un
message depuis l'URI dfinie.
Use Aggregation Cochez cette case pour dfinir la stratgie d'agrgation pour
Strategy assembler le message de base et les donnes supplmentaires.
Specify timeout Cette zone apparat lorsque la case Using a consumer est coche. Les
options de dlai avant suspension sont les suivantes :

Wait until a message arrive : le composant attend un message.

Immediately polls the message : le composant interroge


immdiatement l'URI dfinie.

Waiting at most until the timeout triggers : cochez cette case


pour saisir un dlai avant suspension en millisecondes. Le composant
attend le message uniquement durant une priode de temps dfinie.
Utilisation Le cContentEnricher vous permet d'utiliser un consommateur ou un producteur pour obtenir
des donnes supplmentaires.
Limitation n/a

Scnario : Recevoir des messages d'une liste d'URL


Dans ce scnario, vous allez utiliser le composant Camel HTTP4 et le composant cContentEnricher pour
rcuprer des messages partir d'une liste d'URL. Pour ce faire, vous devez construire deux sous-routes, une pour
lire un fichier avec une liste d'URL et pour envoyer des messages dans le systme de fichiers local, l'autre pour
rcuprer les messages de ces URL.

Dans cet exemple, vous allez prendre une liste d'URL du serveur Tomcat local comme exemple. Vous devez donc
dmarrer Apache Tomcat avant d'excuter la Route.

Un fichier .txt URLlist est utilis pour fournir la liste d'URL, comme ci-dessous.

docs/introduction.html
docs/setup.html

234 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Recevoir des messages d'une liste d'URL

Dposer et relier les composants


1. De la Palette, glissez-dposez un cSplitter, un cJavaDSLProcessor, un cContentEnricher, deux cFile,
deux cMessagingEndpoint et trois cSetHeader dans l'espace de modlisation graphique.

2. Renommez les composants afin d'identifier leur rle dans la Route et reliez-les l'aide de liens Row > Route.

Configurer les composants

Configurer la premire sous-route

1. Double-cliquez sur le composant URLlist pour afficher sa vue Basic settings.

2. Dans le champ Path, parcourez votre systme jusqu'au fichier dans lequel la liste d'URL est sauvegarde.

Dans le champ FileName, saisissez le nom du fichier URLlist.txt.

3. Double-cliquez sur le cSplitter pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 235


Scnario : Recevoir des messages d'une liste d'URL

4. Slectionnez None dans la liste Language. Dans le champ Expression, saisissez le code
body(String.class).tokenize("\r\n") pour diviser le message de chaque ligne en sous-messages.

Ce code est valable uniquement sous Windows. Sous Unix, modifiez-le en


body(String.class).tokenize("\n"), pour Mac, en body(String.class).tokenize("\r").

5. Double-cliquez sur le cJavaDSLProcessor pour afficher sa vue Basic settings.

6. Dans le champ Code, saisissez le code .log("splitterOutput: ${body}") pour diviser le corps du
message.

7. Double-cliquez sur le cContentEnricher pour afficher sa vue Basic settings.

8. Slectionnez l'option using a producer pour utiliser un producteur afin de fournit des donnes
supplmentaires et envoyer le message une URI dfinie.

Dans le champ Resource URI, saisissez "direct:fetchURL", o le message sera livr.

236 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Recevoir des messages d'une liste d'URL

9. Double-cliquez sur le setFileName pour afficher sa vue Basic settings.

10. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez org.apache.camel.Exchange.FILE_NAME pour dfinir le nom du fichier


pour chaque message entrant.

Slectionnez Simple dans la liste Language.

Dans le champ Value, saisissez "${header.CamelHttpPath}" pour obtenir le chemin de l'URI du message
entrant.

11. Double-cliquez sur le retrievedFiles pour afficher sa vue Basic settings.

12. Dans le champ Path, parcourez votre systme jusqu'au fichier de destination dans lequel vos messages seront
sauvegards.

Configurer la seconde sous-route


1. Double-cliquez sur le composant fetchURL pour afficher sa vue Basic settings.

Guide de rfrence des Composants Mediation de Talend ESB 237


Scnario : Recevoir des messages d'une liste d'URL

2. Dans le champ URI, saisissez "direct:fetchURL", dfinie dans le composant cContentEnricher.

3. Double-cliquez sur le composant setURI pour afficher sa vue Basic settings.

4. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez org.apache.camel.Exchange.HTTP_URI pour dfinir l'URI HTTP de


chaque message.

Slectionnez Simple dans la liste Language.

Dans le champ Value, saisissez "http://localhost:8080", du serveur Tomcat local.

5. Double-cliquez sur le composant setPATH pour afficher sa vue Basic settings.

6. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez org.apache.camel.Exchange.HTTP_PATH pour dfinir le chemin HTTP


de chaque message.

Slectionnez Simple dans la liste Language.

Dans le champ Value, saisissez "${body}", divis depuis le message original.

7. Double-cliquez sur le http4Endpoint pour afficher sa vue Basic settings.

238 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Recevoir des messages d'une liste d'URL

8. Dans le champ URI, saisissez "http4:localhost:8080" pour consommer des ressources HTTP du serveur
Tomcat local.

9.
Cliquez sur l'onglet Advanced settings. Cliquez sur le bouton au bas de la table Dependencies pour y
ajouter une ligne et slectionnez http4 dans la liste droulante. Pour plus d'informations concernant HTTP4,
consultez le site Web http://camel.apache.org/http4.html (en anglais).

Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 239


Scnario : Recevoir des messages d'une liste d'URL

Comme affich ci-dessus, une route est construite de URLlist vers retrievedFiles via les mthodes
.split, .log, .enrich et .setHeader. L'autre route de messages est construite de fetchURL vers
http4Endpoint via deux .setHeader.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Le message divis est affich dans le console de la vue Run.

Les messages de la liste d'URLs sont sauvegards dans le rpertoire dfini du systme de fichiers local.

240 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Recevoir des messages d'une liste d'URL

Guide de rfrence des Composants Mediation de Talend ESB 241


cConvertBodyTo

cConvertBodyTo

Proprits du cConvertBodyTo
Famille de composant Transformation
Fonction Le composant cConvertBodyTo convertit le corps du message en un type d'une classe donne.
Objectif Le cConvertBodyTo est utilis pour modifier le type de classe du corps du message.
Basic settings Target Class Name Saisissez le nom du type de classe dans lequel vous souhaitez
convertir le corps du message.
Utilisation Le cConvertBodyTo est utilis comme composant intermdiaire dans une Route.
Limitation n/a

Scnario : Convertir le corps d'un fichier XML en


org.w3c.dom.Document.class
Dans ce scnario, un composant cConvertBodyTo est utilis pour convertir le corps d'un fichier XML en un
document org.w3c.dom.Document.class. Un cBean importe le document org.w3c.dom.Document.class, vrifie
son contenu et affiche le nom de l'lment racine ainsi que le contenu de chaque lment category.

Le fichier XML se prsente ainsi :

<bookstore>
<bookshelf>
<category>Cooking</category>
<quantity>100</quantity>
</bookshelf>
<bookshelf>
<category>Languages</category>
<quantity>200</quantity>
</bookshelf>
<bookshelf>
<category>Arts</category>
<quantity>300</quantity>
</bookshelf>
<bookshelf>
<category>Science</category>
<quantity>400</quantity>
</bookshelf>
</bookstore>

Crer un Bean
1. Dans la vue Repository, dveloppez le nud Code et cliquez-droit sur le nud Beans. Dans le menu
contextuel, slectionnez Create Bean.

242 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class

2. L'assistant [New Bean] s'ouvre. Dans le champ Name, saisissez un nom pour le bean, par exemple
PrintConvertToBean. Cliquez sur Finish pour fermer l'assistant.

3. Saisissez le code suivant dans l'espace de modlisation graphique.

package beans;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class PrintConvertToBean {

/**
* print input message
* @param message
*/
public static void helloExample(Document message) {

Guide de rfrence des Composants Mediation de Talend ESB 243


Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class

if (message == null) {
System.out.println("There's no message here!");
return;
}
Element rootElement = message.getDocumentElement();
if (rootElement == null) {
System.out.println("There's no root element here!");
return;
}
System.out.println("The root element name is:"
+ rootElement.getNodeName());
System.out.println("The book categories are:");
NodeList types = rootElement.getElementsByTagName("category");
for(int i = 0;i<types.getLength();i++){
Element child = (Element) types.item(i);
System.out.println(child.getFirstChild().getNodeValue());
}
}
}

4. Appuyez sur les Ctrl+S afin de sauvegarder votre bean.

Pour plus d'informations concernant la cration et l'utilisation des beans Java, consultez le Guide utilisateur du
Studio Talend.

Dposer les composants et les relier

1. Glissez-dposez les composants suivants de la Palette dans l'espace de modlisation graphique : un cFile,
un cConvertBodyTo, un cBean et un cBeanRegister.

2. Reliez le cFile, le cConvertBodyTo et le cBean l'aide d'un lien Row > Route.

3. Nommez les composants comme vous le souhaitez afin de mieux identifier leur fonctionnalit.

Configurer les composants


1. Double-cliquez sur le composant cFile pour ouvrir sa vue Basic settings dans l'onglet Component.

244 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class

2. Dans le champ Path, saisissez le chemin d'accs ou parcourez votre systme jusqu'au fichier XML source.

Si le dossier du fichier source contient plus d'un fichier, saisissez le nom du fichier XML qui vous intresse
dans le champ FileName et laissez les autres paramtres tels qu'ils sont.

3. Double-cliquez sur le composant cConvertBodyTo pour ouvrir sa vue Basic settings dans l'onglet
Component.

4. Dans le champ Target Class Name, saisissez le nom de votre classe cible, org.w3c.dom.Document.class
dans ce scnario.

5. Double-cliquez sur le composant cBean pour ouvrir sa vue Basic settings.

6. Dans le champ Id, saisissez "bean".

Slectionnez l'option Simple, et, dans le champ Class Name, saisissez le nom du bean invoquer,
beans.PrintConcertToBean, dans ce scnario.

7. Double-cliquez sur le composant cBean pour ouvrir sa vue Component.

Guide de rfrence des Composants Mediation de Talend ESB 245


Scnario : Convertir le corps d'un fichier XML en org.w3c.dom.Document.class

8. Slectionnez l'option Reference et, dans le champ Id, saisissez "bean" pour appeler le bean enregistr par
le cBeanRegister.

9. Appuyez sur les touches Ctrl+S pour sauvegarder votre Route.

Visualiser du code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour vrifier le code gnr.

Comme dans la capture d'cran, le corps du message de (from) l'endpoint Read_message_cFile_1 est
converti en org.w3c.dom.Document.class by cConvertBodyTo_1. Il est ensuite trait par le bean invoqu
par cBean_1.

2. Appuyez sur F6 pour excuter la Route.

Rsultat : Le nom de l'lment racine ainsi que le contenu des lments category sont affichs.

246 Guide de rfrence des Composants Mediation de Talend ESB


cMap

cMap

Ce composant est disponible dans la Palette du Studio Talend si vous avez souscrit l'une des solutions de Talend Platform.

Proprits du cMap
Famille du composant Transformation
Fonction Le composant cMap transforme des donnes de multiples sources vers de multiples destinations.
Si vous souhaitez utiliser diffrentes entres et/ou sorties, vous devez utiliser les fonctions I/
O de Talend Data Mapper. Pour plus d'informations, consultez le Guide utilisateur de Talend
Data Mapper.
Objectif Le cMap excute des transformations (appeles mappings) entre diffrentes sources et
destinations, en tirant parti des fonctionnalits de Talend Data Mapper, disponibles dans la
perspective Mapping.
Basic settings Open Map Editor Cliquez sur le bouton [...] pour ouvrir le mapping dfini dans le
champ Map Path, dans la perspective Mapping.
Map Path Spcifiez le mapping effectuer.

Cliquez sur le bouton [...] ct du champ Map Path afin d'ouvrir


une bote de dialogue dans laquelle vous pouvez slectionner le
mapping que vous souhaitez utiliser. Cliquez sur le bouton [+]
ct du champ Open Map Editor pour travailler sur le mapping
slectionn. Notez que ce mapping doit avoir t prcdemment
cr dans la perspective Mapping.
Log Level Dans la liste droulante, slectionnez la frquence
d'enregistrement des vnements.

Infrequent : enregistre seulement les vnements lis au


dmarrage, l'arrt et aux exceptions.

Frequent (dfaut) : enregistre les vnements lis au


dmarrage, l'arrt, aux exceptions, ainsi qu'un vnement par
excution de mapping.

Info : enregistre tous les vnements de niveau info ou


suprieur.

All : enregistre tous les vnements.

None : n'enregistre rien.


Exception Threshold Talend Data Mapper retourne un statut d'excution et une valeur
de svrit pouvant tre de niveau OK, Info, Warning, Error ou
Fatal. En configurant le seuil d'exception, vous pouvez spcifier le
niveau de svrit auquel est retourne une exception et permettre
aux composants suivants de dtecter les erreurs dans les cas o la
valeur n'est pas celle par dfaut, Fatal.

Dans la liste droulante, slectionnez le niveau de svrit auquel


une exception est retourne durant l'excution d'un mapping.

Fatal (dfaut) : une exception est retourne lorsqu'une erreur


fatale (Fatal) survient.

Error : une exception est retourne lorsqu'une erreur (de niveau


Error ou suprieur) survient.

Guide de rfrence des Composants Mediation de Talend ESB 247


Scnario : Mapper des donnes avec le cMap

Warning : une exception est retourne lorsqu'un avertissement


(Warning ou une erreur de niveau suprieur) survient.
Output Type Dans la liste droulante, slectionnez la manire dont vous
souhaitez crire la sortie.

Default : la sortie par dfaut est identique l'entre ou est du


Java si le mapping crit du Java en sortie.

String : utilisez cette option si les donnes de la colonne de


sortie sont de type String.

Byte Array : utilisez cette option si les donnes de la colonne


de sortie sont de type Byte array.

InputStream : utilisez cette option si vous travaillez avec


les mtadonnes de Talend Data Mapper et que les donnes
d'entre sont un flux.
Utilisation Le composant cMap est utilis pour les Routes ncessitant un mapping de donnes.
Limitation Du fait d'une incompatibilit de licence, un ou plusieurs JARs requis pour utiliser ce composant
ne sont pas fournis. Vous pouvez installer ces Jar manquants en cliquant sur le bouton Install
dans la vue Basic settings de l'onglet Component. Pour plus d'informations, consultez la section
concernant la configuration du studio dans le Guide d'installation et de migration Talend.

Cette limitation s'applique aux mappings utilisant des bases de donnes.

Pour plus d'informations concernant les transformations effectues l'aide de Talend Data Mapper, consultez le Guide
Talend Data Mapper User Guide.

Scnario : Mapper des donnes avec le cMap


Le scnario suivant permet de crer une Route trois composants. Cette Route parcourt un rpertoire de fichier
locaux et copie son contenu l'aide d'un composant cFile, effectue une transformation l'aide d'un composant
cMap et envoie les fichiers du rpertoire d'entre vers un composant de sortie cFile. Ce dernier crit les fichiers
dans un autre rpertoire.

1. Dans la vue Data Mapper de la perspective Mapping, dveloppez le nud Hierarchical Mapper puis le
dossier Other Projects. Cliquez-droit sur Examples et, dans le menu contextuel, cliquez sur Copy.

2. Dans la vue Data Mapper, cliquez-droit la racine du nud Hierarchical Mapper puis, dans le menu
contextuel, cliquez sur Paste.

Cela permet de copier une version modifiable de tous les fichiers d'exemple en lecture seule dans votre
Workspace local.

Construire le Job
1. Cliquez sur l'emplacement, dans l'espace de modlisation graphique, o vous souhaitez ajouter le premier
composant. Commencez saisir cFile puis cliquez sur le nom du composant lorsqu'il apparat dans la liste
propose, afin de le slectionner.

2. Procdez de mme afin d'ajouter un composant cMap et un second cFile.

248 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Mapper des donnes avec le cMap

3. Reliez le cFile_1 au cMap puis le cMap au cFile_2 l'aide de liens Row > Route.

Configurer les proprits du cFile_1


1. Slectionnez le cFile_1 afin de paramtrer ses proprits.

2. Dans le champ Path, parcourez votre systme ou saisissez le chemin vers l'emplacement du fichier source.

3. Dans le champ fileName, saisissez le nom du fichier source : PayPalPO.csv dans cet exemple.

4. Laissez les autres paramtres tels qu'ils sont.

Configurer les proprits du cMap


1. Slectionnez le cMap afin de paramtrer ses proprits.

2. Cliquez sur le bouton [...] ct du champ Map Path afin d'ouvrir une bote de dialogue permettant de
slectionner le mapping utiliser, Maps/CSV/POPayPalCsv_PO2 dans ce scnario. Ce mapping transforme
un fichier CSV en un fichier XML.

Appuyez ensuite sur OK.

Configurer les proprits du cFile_2


1. Slectionnez le cFile_2 afin de paramtrer ses proprits.

Guide de rfrence des Composants Mediation de Talend ESB 249


Scnario : Mapper des donnes avec le cMap

2. Dans le champ Path, parcourez votre systme ou saisissez le chemin vers l'emplacement du fichier cible.

3. Dans le champ fileName, saisissez un nom pour le fichier cible, avec l'extension .xml.

4. Laissez les autres paramtres tels qu'ils sont.

Sauvegarder et excuter la Route


1. Appuyez sur Ctrl+S pour sauvegarder votre Route.

2. Dans l'onglet Run, cliquez sur Run afin d'excuter la Route.

3. Parcourez votre systme vers le rpertoire de sortie afin de vrifier que les fichiers d'entre ont bien t
transforms et crits dans le rpertoire de sortie.

250 Guide de rfrence des Composants Mediation de Talend ESB


cSetBody

cSetBody

Proprits du cSetBody
Famille de composant Transformation
Fonction Le composant cSetBody remplace le payload de chaque message envoy ce composant.
Objectif Le cSetBody est utilis pour configurer le corps du message dans la Route.
Basic settings Language Slectionnez le langage de l'expression utilise pour configurer le
contenu des messages mis en correspondance, parmi Constant,
EL, Groovy, Header, JavaScript, JoSQL, JXPath, MVEL,
None, OGNL, PHP, Property, Python, Ruby, Simple, SpEL,
SQL, XPath, et XQuery.
Expression Saisissez l'expression permettant de configurer le contenu du
message.
Correlation expression/Add Cette option apparat lorsque XPath est slectionn dans la liste
Namespaces Language.

Cochez cette case pour ajouter des espaces de noms pour


l'expression Xpath. Cliquez sur le bouton [+] pour ajouter autant
d'espaces de noms que ncessaire dans la table et dfinissez le
prfixe et l'URI dans les colonnes correspondantes.
Utilisation Le cSetBody est utilis comme composant intermdiaire dans une Route.
Limitation n/a

Scnario : Remplacer le contenu des messages par


leurs extraits
Dans ce scnario, des messages de fichiers sont routs d'un endpoint un autre, avec le contenu de chaque message
remplac par les informations extraites de celui-ci.

Voici un exemple des fichiers XML utiliss dans ce scnario :

<people>
<person>
<firstName>Pierre</firstName>
<lastName>Dubois</lastName>
<city>Paris</city>
</person>
</people>

Dposer et relier les composants


Ce scnario utilise deux composants cFile, un comme metteur des messages et l'autre comme rcepteur, un
cSetBody pour remplacer le contenu des messages de la Route et un cProcessor pour afficher le nouveau contenu
des messages routs vers l'endpoint rcepteur.

Guide de rfrence des Composants Mediation de Talend ESB 251


Scnario : Remplacer le contenu des messages par leurs extraits

1. Dans la Palette, dveloppez le dossier Messaging, et dposez deux composants cFile dans l'espace de
modlisation graphique.

2. Dans le dossier Transformation, dposez un cSetBody dans l'espace de modlisation graphique, entre les
deux composants cFile.

3. Du dossier Processor, dposez un cProcessor dans l'espace de modlisation graphique, la suite du second
composant cFile.

4. Cliquez-droit sur le premier cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cSetBody.

5. Rptez cette opration pour relier le cSetBody au second cFile et le second composant cFile au cProcessor.

6. Renommez les composants afin de mieux identifier leur rle dans la Route, comme ci-dessus.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile nomm Sender pour afficher sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs au dossier contenant les fichiers source ou parcourez votre
systme jusqu' ce dossier.

3. Dans la liste Encoding, slectionnez le type d'encodage des fichiers source. Laissez les autres paramtres
tels qu'ils sont.

4. Rptez ces tapes pour dfinir le chemin d'accs au fichier de sortie ainsi que son type d'encodage, dans la
vue Basic settings de l'autre composant cFile nomm Receiver.

5. Double-cliquez sur le cSetBody pour afficher sa vue Basic settings.

252 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Remplacer le contenu des messages par leurs extraits

6. Dans la liste Language, slectionnez le langage de l'expression que vous utilisez.

Comme vous grez des fichiers XML, slectionnez XPath dans la liste.

7. Dans le champ Expression, saisissez l'expression qui retournera le contenu du nouveau message souhait.

Dans ce scnario, person doit tre l'lment racine de chaque fichier lorsqu'il est rout vers l'endpoint
rcepteur, saisissez "/people/person" dans le champ Expression.

8. Double-cliquez sur le composant cProcessor pour afficher sa vue Basic settings et personnalisez le code afin
que la console affiche les informations comme vous le souhaitez.

Dans ce scnario, vous devez afficher le nom du fichier ainsi que le contenu de chaque message rout vers
l'endpoint rcepteur, personnalisez le code, comme suit :

System.out.println("File received: " +


exchange.getIn().getHeader("CamelFileName") +
"\nContent:\n " +
exchange.getIn().getBody(String.class));

9. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique pour visualiser le code gnr.

Dans ce morceau de code, une route de messages est construite partir (from) d'un endpoint vers (.to) un
autre et, lors du routage, le contenu de chaque message est remplac selon la condition .xpath("/people/
person") par le "cSetBody_1".

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Guide de rfrence des Composants Mediation de Talend ESB 253


Scnario : Remplacer le contenu des messages par leurs extraits

Rsultat : Les fichiers XML sont envoys au rcepteur, dans lequel person devient l'lment racine de chaque
fichier.

254 Guide de rfrence des Composants Mediation de Talend ESB


cSetHeader

cSetHeader

Proprits du cSetHeader
Famille de composant Transformation
Fonction Le composant cSetHeader dfinit des en-tte pour chaque message qui lui est envoy.
Objectif Le composant cSetHeader est utilis pour dfinir des en-tte ou personnaliser les en-tte par
dfaut, s'il y en a, dans chaque message qui lui est envoy pour traitement subsquent du message.
Basic settings Headers Cliquez sur [+] pour ajouter au tableau autant d'en-tte que
ncessaire.
Name : Saisissez le nom de l'en-tte du message.

Le nom d'en-tte CorrelationID est rserv. La valeur de cet en-


tte est crase par l'ID de corrlation du message, s'il existe.
Language : Slectionnez le langage de l'expression que vous
utilisez, parmi Bean, None, Constant, CorrelationID, EL,
Groovy, Header, JavaScript, JoSQL, JXPath, MVEL, OGNL,
PHP, Property, Python, Ruby, Simple, SpEL, SQL, XPath et
XQuery.

Slectionnez Bean si vous souhaitez appeler un Bean Java


prdfini pour retourner la valeur d'en-tte.

Slectionnez CorrelationID pour utiliser l'ID de corrlation


du message comme valeur d'en-tte si l'ID de corrlation est
disponible dans le cCXF le plus proche connect ce composant.
Pour plus d'informations, consultez cCXF.
Value : Saisissez soit l'expression pour dfinir la valeur de l'en-
tte du message, soit la classe Bean qui va retourner une valeur
pour l'en-tte du message, sous la forme beans.NOM_BEAN.

Si l'option CorrelationID est slectionne dans la liste Language,


ce champ est gris. L'ID de corrlation du cCXF le plus proche
connect ce composant est configur comme la valeur d'en-tte.
Pour plus d'informations concernant le cCXF, consultez cCXF.
Add Namespaces Cochez cette case pour ajouter des espaces de noms pour
l'expression. Cliquez sur le bouton [+] pour ajouter autant
d'espaces de noms que ncessaire dans la table et dfinissez le
prfixe et l'URI dans les colonnes correspondantes.
Utilisation Le cSetHeader est utilis en tant que composant intermdiaire dans une Route.

Scnario : Diviser un message et renommer les sous-


messages selon les informations contenues
Dans ce scnario, un message de fichier contenant des informations relatives des personnes est divis en sous-
messages. Chaque sous-message est renomm selon le nom de la ville qu'il contient et est ensuite rout vers un
autre endpoint.

Voici un exemple de fichier XML utilis dans ce scnario :

<people>

Guide de rfrence des Composants Mediation de Talend ESB 255


Scnario : Diviser un message et renommer les sous-messages selon les informations contenues

<person>
<firstName>Pierre</firstName>
<lastName>Dubois</lastName>
<city>Paris</city>
</person>
<person>
<firstName>Nicolas</firstName>
<lastName>Yang</lastName>
<city>Beijing</city>
</person>
<person>
<firstName>Ellen</firstName>
<lastName>Ripley</lastName>
<city>Washington</city>
</person>
</people>

Un Bean Java prdfini, setFileNames, est appel par le composant cSetHeader utilis dans ce scnario pour
dfinir un nom de fichier pour chaque message selon le nom de la ville qu'il contient. Pour plus d'informations
concernant la cration et l'utilisation de Beans Java, consultez le Guide utilisateur du Studio Talend.

package beans;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class setFileNames {


public String getCityName(Document document) {
NodeList cities = document.getDocumentElement().getElementsByTagName(
"city");
Element city = (Element) cities.item(0);
String textContent = city.getTextContent();
return textContent+".xml";
}
}

Dposer et relier les composants


Ce scnario utilise deux composants cFile, un comme metteur des messages et un comme rcepteur, un cSplitter
pour diviser le message source en sous-messages, un cSetHeader pour renommer chaque sous-message et un
composant cProcessor pour afficher le nom de fichier de chaque message rout vers le rcepteur.

1. Dans la Palette, dveloppez le dossier Messaging et dposez deux composants cFile dans l'espace de
modlisation graphique.

2. De la famille Routing, dposez un composant cSplitter dans l'espace de modlisation graphique, entre les
deux composants cFile.

256 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Diviser un message et renommer les sous-messages selon les informations contenues

3. De la famille Transformation, dposez un composant cSetHeader dans l'espace de modlisation graphique,


entre le cSplitter et le cFile rcepteur.

4. Cliquez-droit sur le premier cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur le
composant cSplitter.

5. Cliquez-droit sur le cSplitter, slectionnez Row > Split dans le menu contextuel et cliquez sur le composant
cSetHeader.

6. Cliquez-droit sur le composant cSetHeader, slectionnez Row > Route dans le menu contextuel et cliquez
sur le second cFile.

7. Cliquez sur le second composant cFile, slectionnez Row > Route dans le menu contextuel et cliquez sur
le composant cProcessor.

8. Renommez les composants afin de mieux identifier leur rle dans la Route, comme ci-dessus.

Configurer les composants et les connexions


1. Double-cliquez sur le composant cFile nomm Sender pour afficher sa vue Basic settings.

2. Dans le champ Path, saisissez le chemin d'accs au dossier contenant les fichiers source ou parcourez votre
systme jusqu'au dossier correspondant.

Dans la liste Encoding, slectionnez le type d'encodage de vos fichiers source.

Dans le champ FileName, saisissez le nom du fichier du message source. Vous pouvez passer cette tape si
le dossier source contient un seul fichier.

3. Rptez les tapes 1et 2 ci-dessus pour dfinir le chemin d'accs au fichier de sortie ainsi que le type
d'encodage dans la vue Basic settings de l'autre composant cFile nomm Receiver. Laissez le champ
FileName vide.

Guide de rfrence des Composants Mediation de Talend ESB 257


Scnario : Diviser un message et renommer les sous-messages selon les informations contenues

4. Double-cliquez sur le composant cSplitter pour afficher sa vue Basic settings.

Dans ce scnario, divisez le message en sous-messages chaque nud person du fichier XML, Slectionnez
XPath dans la liste Language et saisissez ("/people/person") dans le champ Expression.

5. Double-cliquez sur le composant cSetHeader nomm Set_file_name pour afficher sa vue Basic settings.

258 Guide de rfrence des Composants Mediation de Talend ESB


Scnario : Diviser un message et renommer les sous-messages selon les informations contenues

6. Cliquez sur [+] pour ajouter une ligne au tableau Headers.

Dans le champ Name, saisissez le nom de l'en-tte que vous souhaitez donner aux messages.

Dfinissez le nom de fichier pour chaque message entrant, saisissez "CamelFileName" comme nom de l'en-
tte.

Slectionnez Bean dans le champ Language et saisissez le nom du Bean Java prdfini dans le champ Value,
beans.setFileNames.class dans ce scnario.

7. Double-cliquez sur le composant cProcessor pour afficher sa vue Basic settings et personnaliser le code afin
que les informations s'affichent comme vous le souhaitez.

Dans ce scnario, vous souhaitez afficher le nom du fichier de chaque message rout vers l'endpoint rcepteur,
personnalisez donc le code comme suit :

System.out.println("File received: "+


exchange.getIn().getHeader("CamelFileName"));

8. Appuyez sur Ctrl+S pour sauvegarder votre Route.

Visualiser le code et excuter la Route


1. Cliquez sur l'onglet Code dans l'espace de modlisation graphique pour visualiser le code gnr.

Guide de rfrence des Composants Mediation de Talend ESB 259


Scnarios associs

Comme affich dans le code, une route de messages est construite d'un (from) endpoint (.to) un autre
et, lors du routage, le message source est divis selon la condition xpath("/people/person") par le
cSplitter_1. Chaque sous-message obtient un en-tte nomm CamelFileName, la valeur retourne par
.method(beans.setFileNames.class).

2. Cliquez sur la vue Run pour l'afficher et cliquez sur le bouton Run pour lancer l'excution de votre Route.
Vous pouvez galement appuyer sur F6 pour l'excuter.

Rsultat : Le message source est divis en sous-messages. Chaque sous-message est renomm d'aprs le nom
de la ville qu'il contient et rout vers l'endpoint rcepteur.

Scnarios associs
Pour plus de scnarios, consultez :

Scnario : Utiliser un cTalendJob pour appeler un Job d'intgration de donnes.

Scnario 1 : Router un message conscutivement une srie d'endpoints.

Scnario 2 : Router chaque message selon des conditions vers une srie d'endpoints.

260 Guide de rfrence des Composants Mediation de Talend ESB

S-ar putea să vă placă și