Documente Academic
Documente Profesional
Documente Cultură
Talend ESB
Guide de rfrence
5.6.2
Composants Mediation Talend ESB
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
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 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 :
http://talendforge.org/forum
La famille Context regroupe les composants dfinissant les contextes que vous souhaitez utiliser dans vos Routes.
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.
Scnario associ
Pour un scnario associ, consultez :
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.
4. Cliquez-droit sur le composant d'entre cMessagingEndpoint, slectionnez Row > Route dans le menu
contextuel et cliquez sur le composant cProcessor.
5. Nommez les composants comme vous le souhaitez, afin de mieux identifier leur fonctionnalit.
2. Dans le champ Code, saisissez du code pour enregistrer l'instance du jeu de donnes foo dans le Registry,
comme ci-dessous.
3. Double-cliquez sur le composant d'entre cMessagingEndpoint nomm Read_dataset pour afficher sa vue
Basic settings dans l'onglet Component.
5. Double-cliquez sur le composant cProcessor nomm Monitor 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 :
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.
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.
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.
La famille Exception regroupe les composants ddis la gestion des exceptions dans les Routes.
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.
5. Cliquez sur l'onglet Advanced settings pour configurer les proprits avances du composant.
6. Dans la table Dependencies, cliquez sur le bouton [+] afin d'ajouter une ligne et slectionnez jetty dans
la liste Camel component.
8. Dans le champ Code, saisissez throw new Exception("server side error") afin de retourner une
exception.
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.
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.
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.
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.
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.
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.
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 :
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.
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.
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.
4. Renommez les composants comme vous le souhaitez pour mieux identifier leur rle dans la Route.
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.
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;
/**
* @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.
8. Dans la zone Code, personnalisez le code pour afficher le nom du fichier du message consomm dans la
console de la vue Run :
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.
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).
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.
2. Du dossier Exception, dposez un composant cTry dans l'espace de modlisation graphique pour construire
des blocs Try, Catch et Finally.
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.
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 :
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.
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"));
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.
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.
La famille Messaging regroupe les composants permettant d'accder aux endpoint de messaging, aux systmes
de fichiers, aux rfrentiels de code, etc.
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).
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).
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.
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.
4. Dans le champ Repeat, saisissez 5 pour gnrer cinq fois l'change de messages. Laissez les autres paramtres
par dfaut.
6. Slectionnez SIMPLE dans la liste droulante Language et saisissez "Hello world" dans le champ
Expression, comme corps du message.
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".
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.
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 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.
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.
2. Dans la liste MQ Server, slectionnez AMQP 1.0 pour grer les messages. Laissez les paramtres par dfaut
pour les autres options.
4. Dans la zone URI, spcifiez dans la liste Type et le champ Destination du cAMQP les mmes valeurs que
dans la Route productrice.
5. Laissez les paramtres par dfaut du cLog afin d'enregistrer les changes de messages.
1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.
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.
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.
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.
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.
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.
1. Dans la Palette, dveloppez le dossier Messaging, slectionnez le composant cCXF 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.
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.
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.
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;
1. Dans la Palette, dveloppez le dossier Messaging, slectionnez le composant cCXF 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.
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.
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.
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.
1. Dans la Palette, dveloppez le dossier Messaging, et dposez un composant cCXF 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.
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.
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.
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.
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.
Cliquez sur le bouton [+] sous la table pour ajouter autant de lignes
que ncessaire pour spcifier la requte 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
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.
3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.
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 :
beanInstance = customers;
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.
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.
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.
1. Dans la Palette, glissez-dposez un cTimer, un cCXFRS et un cLog dans l'espace de modlisation graphique.
3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.
2. Dans le champ Repeat, saisissez 1 pour gnrer une fois l'change de messages. Laissez les autres paramtres
par dfaut.
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.
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.
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.
5. Renommez les composants afin de mieux identifier leur rle dans la Route, comme dans la capture d'cran.
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.
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---------")
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.
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.
Scnario associ
Pour un scnario associ, consultez Scnario : Utiliser les composants cSEDA, cVM et cDirect pour produire et
consommer sparment des messages.
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.
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.
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.
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.
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.
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.
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.
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.
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.
2. Cliquez-droit sur le composant d'entre cFile, slectionnez Row > Route dans le menu contextuel et cliquez
sur le composant de sortie cFile.
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.
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.
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.
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.
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.
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.
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.
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.
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>
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.
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.
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.
Comme affich ci-dessus, le fichier rcupr dfinit 37 conditions mtorologiques avec leur description
dtaille.
3. Cliquez sur le bouton radio Server pour utiliser le composant en tant que cHttp serveur. Laissez les autres
paramtres tels qu'ils sont.
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"));
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.
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.
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
2. Du dossier Messaging de la Palette, dposez un composant cFile et deux cJMS 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.
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.
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.
8. Configurez le consommateur de messages en utilisant exactement les mmes paramtres que dans le
producteur de messages.
10. Dans la zone Code, personnalisez le code pour afficher le nom des fichiers des messages consomms dans
la console de la vue Run.
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.
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.
2. Reliez le composant cMessagingEndpoint au cJMS l'aide d'un lien Row > Route.
3. Reliez le composant cJMS au cProcessor l'aide d'un lien Row > Route.
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.
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.
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.
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 : Un message "hello world!" est envoy dans la file JMS, comme affich dans la console de la vue
Run.
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.
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 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.
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.
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.
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.
2. Reliez le composant cJMS au cProcessor l'aide d'un lien Row > Route.
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).
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.
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.
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.
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).
2. Renommez les composants afin de mieux identifier leur rle et reliez-les l'aide de liens Row > Route.
Dans le champ Broker URI, saisissez l'URI du serveur local d'Active MQ, "tcp://localhost:61616".
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).
7. Slectionnez Simple dans la liste Language et saisissez "Hello world" dans le champ Expression.
9. Dans le champ URI, saisissez "log:quartzMessage", o les changes de messages sont enregistrs.
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.
1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.
Rsultat : Les logs des changes de messages sont affichs dans la console.
2. Renommez les composants pour identifier leur rle et reliez-les l'aide d'un lien Row > Route.
6. Dans le champ URI, saisissez "log:quartzMessage", o les changes de messages sont enregistrs.
1. Cliquez sur l'onglet Code au bas de l'espace de modlisation graphique afin de visualiser le code gnr.
Rsultat : Les logs des changes de messages sont affichs dans la console.
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.
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.
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.
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.
Dans le champ To, saisissez l'adresse e-mail du destinataire. Dans ce scnario, saisissez la variable de contexte
correspondante.
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");
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.
5. Dans le champ Host, saisissez le nom de l'hte du serveur imap, imap.gmail.com dans cet exemple.
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.
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));
Comme affich ci-dessus, l'e-mail a bien t reu et son contenu est test mail body.
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:/",
- etc.
"file:/directoryName?option=value&option=value"
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.
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>]
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]
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:[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.
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]
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.
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
yammer://function[?options]
Zookeeper / camel-zookeeper Fonctionne avec le(s) cluster(s) ZooKeeper.
zookeeper://zookeeperServer[:port][/path][?
options]
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.
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.
4. Dans le champ URI, saisissez l'URI du dossier vers lequel vous souhaitez router votre message.
Comme vous grez des fichiers, saisissez "file:/" ainsi que le chemin d'accs au dossier dans lequel les fichiers
seront envoys.
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.
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.
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.
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.
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.
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.
<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>
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.
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.
4. Appuyez sur les touches Ctrl+S pour sauvegarder votre ressource de Route.
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.
3. Cliquez-droit sur la Route dans la vue Repository et slectionnez Manage Route Resources dans le menu
contextuel.
4. Dans l'assistant [Manage Route Resources], cliquez sur Add et slectionnez SampleXquery dans la vue des
ressources. Cliquez sur OK.
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.
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.
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.
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.
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.
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).
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.
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.
4. Dans le champ Repeat, saisissez 5 pour gnrer cinq fois l'change de messages. Laissez les autres paramtres
par dfaut.
6. Slectionnez SIMPLE dans la liste Language et saisissez "Hello world" dans le champ Expression,
comme corps du message.
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.
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.
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.
2. Configurez le composant cMQConnectionFactory comme dans la Route productrice afin de vous connecter
au mme broker MQTT.
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.
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.
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.
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.
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.
Vous allez crer une ressource de Route afin de dfinir le nombre d'envois de l'change de messages, utilise par
le composant cTimer.
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.
3. Saisissez repeat.count=2 dans l'espace de modlisation graphique afin de configurer le nombre d'envois
de l'change de messages.
5. Cliquez-droit sur la Route dans la vue Repository et slectionnez Manage Route Resources dans le menu
contextuel.
6. Cliquez sur Add et slectionnez SetRepeatCount dans la vue Resources de la bote de dialogue. Cliquez
sur OK.
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.
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.
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.
3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.
3. Double-cliquez sur le composant Set_body_SEDA dans l'espace de modlisation graphique pour afficher sa
vue Basic settings.
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 :
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.
8. Dans le champ Name, saisissez "seda" pour identifier cet endpoint. Laissez les paramtres par dfaut pour
les autres options.
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.
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.
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.
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.
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.
La famille Miscellaneous regroupe les composants couvrant des besoins spcifiques, comme l'itration d'une
Route ou l'arrt d'une Route.
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).
Scnario associ
Pour un scnario associ, consultez Scnario : Router des messages selon un critre.
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.
Scnario associ
Aucun scnario n'est disponible pour ce composant pour le moment.
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.
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.
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.
Scnario associ
Pour un scnario associ, consultez :
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
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.
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.
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 :
6. Rptez ces tapes pour configurer le second cProcessor nomm Write_monitor pour afficher l'heure
laquelle chaque message est crit dans sa cible :
7. Double-cliquez sur le composant cDelayer nomm Delay_timer pour ouvrir sa vue Basic settings.
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.
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.
Rsultat : Chaque message lu du dossier source et rout vers le dossier cible aprs une latence de 20 secondes.
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
Pour envoyer des requtes au serveur, soapUI est requis. Sa configuration est dcrite dans les sections suivantes.
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.
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.
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.
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()).
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 :
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.
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.
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.
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.
2. Cliquez-droit sur le composant tRouteInput, slectionnez Row > Main dans le menu contextuel et cliquez
sur le tLogRow.
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.
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.
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.
3. Renommez les composants afin de mieux identifier leur rle au sein de la Route.
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.
4. Cliquez sur le bouton [+] pour ajouter une ligne la table Headers.
Slectionnez Constant dans la liste Language et saisissez "FileName" dans le champ Value.
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.
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.
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.
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.
La famille Routing regroupe les composants qui transfrent les messages d'un endpoint un autre selon un
ensemble de conditions.
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.
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.
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.
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;
1. Dans la Palette, dveloppez le dossier Messaging. Slectionnez le composant cFile 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.
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.
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.
Dans le champ Strategy, saisissez le nom du bean Java AggregateBody que vous avez cr.
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 :
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 :
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.
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
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>
</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;
3. Dveloppez le dossier Processor et dposez trois cProcessor dans l'espace de modlisation graphique.
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.
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.
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.
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.
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.
Rsultat : Les messages source sont routs vers diffrents endpoints, selon le nom des villes contenus dans
les messages.
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 :
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>
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.
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.
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.
6. Dans la zone Code, personnalisez le code pour afficher le nom de fichier du message passant le
ddoublonnage :
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 :
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.
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.
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.
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.
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.
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 :
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.
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.
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.
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
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>
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.
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.
3. Dans la liste Encoding, slectionnez le type d'encodage des fichiers du message. Laissez les autres paramtres
tels qu'ils sont.
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.
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.
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.
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.
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>
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.
1. Double-cliquez sur le composant cFile nomm Sender pour ouvrir sa vue Basic settings.
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.
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.
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.
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.
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.
4. Du dossier Transformation, dposez trois composants cSetBody dans l'espace de modlisation graphique.
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.
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.
Effectuez la mme opration pour direct_b et direct_c puis saisissez les URIs de "direct:b" et "direct:c"
respectivement.
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.
Monitor_endblock:
Monitor_direct_a:
Monitor_direct_b:
9. Double-cliquez sur le cSetBody nomm Set_new_body to open its Basic settings view in the Component tab.
Rptez cette tape pour configurer le corps du message pour direct:a et direct:b en tant que "message A"
et "message B" respectivement.
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.
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.
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
2. Du dossier Routing, dposez un composant cPipesAndFilters dans l'espace de modlisation graphique, entre
les deux fichiers cFile.
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.
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.
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"));
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).
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).
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.
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.
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.
Dans le champ Value, saisissez les URIs des endpoints, par exemple "direct:a,direct:b".
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"));
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
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.
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.
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.
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.
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.
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 :
Rptez cette tape pour personnaliser le code des deux autres cProcessor, pour les messages routs vers les
endpoints connects b et c respectivement.
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.
Rsultat : Les messages source sont routs conscutivement vers les endpoints dfinis : c, a puis b.
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.
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;
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.
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.
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.
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.
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
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;
Construire le Job
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
6. Dans le champ Code, saisissez le code ci-dessous pour obtenir le nom des messages passant le throttler.
8. Dans le champ Code, saisissez le code ci-dessous pour obtenir le contenu du message passant le throttler.
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.
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.
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.
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.
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.
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 :
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.
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.
Configurez l'autre composant cProcessor de la mme manire afin d'afficher le nom de fichier du message
rout vers l'Endpoint_b.
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.
Rsultat : Le message source est cout et rout vers l'endpoint a et vers l'endpoint b.
La famille Transformation regroupe les composants excutant des processus de transformation de donnes.
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 :
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
2. Renommez les composants afin d'identifier leur rle dans la Route et reliez-les l'aide de liens Row > Route.
2. Dans le champ Path, parcourez votre systme jusqu'au fichier dans lequel la liste d'URL est sauvegarde.
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.
6. Dans le champ Code, saisissez le code .log("splitterOutput: ${body}") pour diviser le corps du
message.
8. Slectionnez l'option using a producer pour utiliser un producteur afin de fournit des donnes
supplmentaires et envoyer le message une URI dfinie.
10. Cliquez sur [+] pour ajouter une ligne au tableau Headers.
Dans le champ Value, saisissez "${header.CamelHttpPath}" pour obtenir le chemin de l'URI du message
entrant.
12. Dans le champ Path, parcourez votre systme jusqu'au fichier de destination dans lequel vos messages seront
sauvegards.
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).
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.
Les messages de la liste d'URLs sont sauvegards dans le rpertoire dfini du systme de fichiers local.
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
<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.
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.
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) {
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());
}
}
}
Pour plus d'informations concernant la cration et l'utilisation des beans Java, consultez le Guide utilisateur du
Studio Talend.
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.
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.
Slectionnez l'option Simple, et, dans le champ Class Name, saisissez le nom du bean invoquer,
beans.PrintConcertToBean, dans ce scnario.
8. Slectionnez l'option Reference et, dans le champ Id, saisissez "bean" pour appeler le bean enregistr par
le cBeanRegister.
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.
Rsultat : Le nom de l'lment racine ainsi que le contenu des lments category sont affichs.
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.
Pour plus d'informations concernant les transformations effectues l'aide de Talend Data Mapper, consultez le Guide
Talend Data Mapper User Guide.
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.
3. Reliez le cFile_1 au cMap puis le cMap au cFile_2 l'aide de liens Row > Route.
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.
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.
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.
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.
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.
<people>
<person>
<firstName>Pierre</firstName>
<lastName>Dubois</lastName>
<city>Paris</city>
</person>
</people>
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.
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.
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 :
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.
Rsultat : Les fichiers XML sont envoys au rcepteur, dans lequel person devient l'lment racine de chaque
fichier.
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.
<people>
<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;
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.
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.
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 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.
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.
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 :
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 2 : Router chaque message selon des conditions vers une srie d'endpoints.