1. The Spring of Adobe Flex Remoting
®
http://www.flickr.com/photos/wisdoc/431285814/
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
2. François Le Droff
“Just another Java guy”
Adobe Technology and Service Innovation
10 ans d’expérience (web 1+n.0)
OSS geek :
contributeur sur qsos, xradar , leader du projet
fna,
membre de l’ossgtp, du ParisJUG, et ParisJBUG
conférencier à MAX, et Solution Linux
blogs :
http://www.droff.com
http://blogs.adobe.com/francoisledroff/
ledroff@adobe.com
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
3. Spring & Flex Remoting
Spring & Flex :
Avant : SpringFactory
Maintenant : Spring-flex 1.0.0-RELEASE
http://www.springsource.org/spring-flex
LCDS Spring : à suivre…
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
4. Flex Remoting
http://blog.xebia.fr/2008/09/16/blazeds/
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
5. Spring et Flex Remoting
Par défaut, « Flex Remoting » instancie et de gére le cycle de vie des remote
objects définis dans le fichier de configuration remoting-config.xml.
La philosophie de Spring IoC est de laisser le conteneur instancier les
composants ( et d’injecter leurs dépendances).
La clef d’intégration de Spring et « Flex Remoting » , donc, est de trouver le
meilleur moyen d’exposer des « Flex Remoting » services , tout en laissant le
conteneur Spring gérer la configuration, la sécurité, l’instanciation, et le
cycle de vie des implémentation (legacy ou pas) des ces services.
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
6. Flex Remoting + Spring Factory
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
7. Ancienne approche: Spring factory
Le rôle de la factory est de fournir des instances d’objets prêts à l’emploi à BlazeDS, plutôt que
de laisser BlazeDS instancier les composants. Pour créer une factory, il faut créer une classes qui
implémente l’interface flex.messaging.FlexFactory, et implémenter la méthode lookup() utilisée
par BlazeDS pour obtenir une instance d’un remote object.
Enregistrer la factory Spring dans le fichier de configuration services-config.xml :
1.<factories>
2.<factory id="spring" class="flex.samples.factories.SpringFactory"/>
3.</factories>
Configurer la destination pour qu’elle utilise la factory:
1.<destination id="myService">
2.<properties>
3.<factory>spring</factory>
4.<source>myBean</source>
5.</properties>
6.</destination>
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
8. Spring-Factory: Les limites
L’approche par lookup de dépendances décrites ci-dessus est en désaccord
avec l’approche de Spring (injection de dépendance).
Les objets doivent être configurés deux fois : une première fois dans le
fichier remoting-config.xml de BlazeDS, et une fois de plus dans le fichier
Spring de contexte de l’application.
L’intégration se limite à du remoting basique et ne couvre pas d’autres
aspects importants comme la sécurité et le messaging.
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
9. Spring-Flex
AMF Broker
Service
Spring
Spring
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
10. Spring-Flex : Projet d’intégration avec SpringSource
Le MessageBroker, clef de voute du moteur de LCDS, est configuré comme
un bean géré par Spring et n’a plus besoin d’être configuré dans le fichier
web.xml
Les messages Flex sont routés vers le MessageBroker à travers le
DispatcherServlet de Spring
Les RemoteObjects sont configurés « à la de Spring »
Intégration de
Spring Security
« Exception translators »
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
11. Spring-Flex
Demo
&
Revue de Code :
http://fna.googlecode.com/svn/trunk/fna/samples/riveria_ju
g/spring_flex_todo/
http://www.gnu.org/licenses/lgpl.html
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
12. A few magic details : Spring AutoWiring
With a simple SpringFactory (and/or JavaAdapter) approach, you need to
configure each new Java remote object service in remoting-config.xml.
@RemotingDestination (JDK5 annotation) allows you to autowire Spring
beans directly into BlazeDS.
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
13. A few magic details : Application Context
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
14. client side
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.
15. Questions ?
®
Copyright 2008 Adobe Systems Incorporated. All rights reserved.