vendredi 9 octobre 2009

Tutorial Mule ESB & Spring Ioc: Utilisation des beans Spring avec Mule

NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)

Un des avantages de Mule est son choix stratégique de s’intégrer d’une manière native avec Spring, le plus célèbre des framework Ioc.

Mule gagne ainsi du terrain par rapport aux autres ESB open source, en facilitant l’intégration des adeptes de Spring dans sa communauté et en facilitant la réutilisation des codes source des applications métiers exploitant le framework Spring.

Je me pose encore la question, du moment que va choisir Spring (et maintenant Vmware) pour mettre la main sur Mule. Ce n’est pas pour diminuer de la qualité de Spring, mais pour que la communauté Spring bénéficie du savoir faire de Mule en la matière.

Avant d’indiquer la méthode d’injection des beans Spring, rappelons que Mule 2.0 est devenue très modulaire grâce à l’utilisation des namespaces

Lorsqu’on souhaite utiliser Spring, il faut ajouter les Xmlns

1:  xmlns:spring="http://www.springframework.org/schema/beans" 


Ainsi, l’entête du fichier de configuration



1:  <?xml version="1.0" encoding="UTF-8"?> 
2: <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4: xmlns:spring="http://www.springframework.org/schema/beans"
5: xmlns:stdio="http://www.mulesource.org/schema/mule/stdio/2.2"
6: xsi:schemaLocation="
7: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
8: http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
9: http://www.mulesource.org/schema/mule/stdio/2.2 http://www.mulesource.org/schema/mule/stdio/2.2/mule-stdio.xsd">


Deux méthodes permettent d’ajouter des beans Spring dans une configuration Mule



1) Déclarer les beans directement dans la configuration



1:<spring:bean id="composantSimple"  
2: class=" com.oxia.att.mule.intro.ComposantSimple ">
3: <spring:property name="prefix" value="prefix injecté par Spring" />
4:</spring:bean>




2) Lier la configuration à un fichier externe de configuration de Spring. Exemple



1: <spring:beans> 
2: <spring:import resource="applicatinContext-dao.xml"/>
3: <spring:import resource=" applicatinContext-service.xml "/>
4: </spring:beans>


Dans la suite nous allons utiliser la première méthode.



La configuration doit être changée pour ne plus indiquer la classe du Composant mais une référence vers le Bean Spring.



1:  <component> 
2: <spring-object bean="composantSimple"/>
3: </component>


Exécuter le projet :



clip_image002



On constate que



le message est « passé » au bean Spring et que l’injection des propriétés (dépendance : ici la définition de prefix) de bean Spring sont correctes







Est ce que la stratégie de Mule s’arrimer au numéro 1 de l’Ioc pour attire plus d’adepte va s’avérer gagnante,







le temps nous le dira …






mais ceci est un autre sujet.

0 commentaires :

Enregistrer un commentaire

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.