1
INTRODUCTION       PRÉSENTATION DU FRAMEWORK          MODÈLE COMPOSANT SEAM          CONCEPTS TECHNIQUES DU FRAMEWORK     ...
3
 Le framework JBoss Seam est un framework Open Source               à linitiative de Gavin King          (fondateur du fr...
Un framework destiné à la simplification du développement            des applications web complexes.                Un f...
Deux composants d’architecture clefs pour la création      des applications web                      Couche présentation  ...
7
88
Intégration jsf,ejb3.0    JBoss EL            Expressions paramétrées             <h:commandButton               action="#...
Outillage            Seam-gen                       Jboss tools10
1111
Demo            1212
Contextes aplicatifs          Contexte stateless @scope(STATELESS)         Contexte event @scope(EVENT)         Context...
Gestion des événements assynchrones avec seam     EVENT:        Déclencher l’événement dans le corps de la méthode       D...
Gestion des événements assynchrones avec seam     Observer:                    @Observer("postAdded ")15
Gestion des événements assynchrones avec seam               <components>               <event type="PostAdded">           ...
Gestion de la conversation           Manière implicite:composant type ejb statefull              Manière explicite:des j...
Gestion de la conversation18
Gestion de la conversation                       Demo19
Gestion de la conversation      Nested conversation                  Conversation mère                                 Sou...
Principe de l’injection et de la bijection @Name("connection") @Scope(ScopeType.SESSION)                                  ...
Principe de l’injection et de la bijection     @Stateless     @Name("useraction")                                 @Out    ...
Page flow                                                                         Process shopping     <pageflow-definitio...
Authentification     Deux composants Seam pour l’authentification:                      Identity contient les méthodes po...
Démo Authentification25
Integration ajax 1/2       Librairies JSF             Ajax4JSF : extension Ajax des composants             JSF de base   ...
Integration ajax 2/2     Seam remoting               Appel de méthode distante comme si elle                            é...
Integration avec seam frameworkJBOSS server =>Weblogic, WebSphere,OC4J,Tomcat,GlassfishJSF =>Wicket, Tapestry, GWT, ou F...
CONCLUSION     Seam a apporté une vraie valeur ajoutée à     notre projet JSF/EJB3/JPA et nous a     permis de gagner en p...
*     Merci pour votre attention                 *30
Upcoming SlideShare
Loading in …5
×

Jboss Seam

719 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
719
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jboss Seam

  1. 1. 1
  2. 2. INTRODUCTION PRÉSENTATION DU FRAMEWORK MODÈLE COMPOSANT SEAM CONCEPTS TECHNIQUES DU FRAMEWORK CONCLUSION2
  3. 3. 3
  4. 4.  Le framework JBoss Seam est un framework Open Source à linitiative de Gavin King (fondateur du framework Hibernate). Premiere version:seam 1.0 sortie en juin 20064
  5. 5. Un framework destiné à la simplification du développement des applications web complexes. Un framework basé sur des concepts de la spécification JAVA EE 5.  Un framework fournissant un modèle de composant, une API et des annotations.5
  6. 6. Deux composants d’architecture clefs pour la création des applications web Couche présentation Modèle de composant(processus métier et persistance)6
  7. 7. 7
  8. 8. 88
  9. 9. Intégration jsf,ejb3.0 JBoss EL Expressions paramétrées <h:commandButton action="#{universite.trouverClasse(filiere, niveau)}" value=“classe"/>9
  10. 10. Outillage Seam-gen Jboss tools10
  11. 11. 1111
  12. 12. Demo 1212
  13. 13. Contextes aplicatifs Contexte stateless @scope(STATELESS) Contexte event @scope(EVENT) Contexte page @scope(PAGE) Contexte session @scope(SESSION)  Contexte Business Process @scope(Business_Process) Contexte conversation @scope(CONVERSATION) Contexte application @scope(APPLICATION)13
  14. 14. Gestion des événements assynchrones avec seam EVENT: Déclencher l’événement dans le corps de la méthode Déclencher l’événement sur l’appel d’une méthode @RaiseEvent("postAdded ")14 @RaiseAsynchronousEvent(« postAdded »)
  15. 15. Gestion des événements assynchrones avec seam Observer: @Observer("postAdded ")15
  16. 16. Gestion des événements assynchrones avec seam <components> <event type="PostAdded"> <action execute="#{PostAddedListener.info rm}"/> </event> </components>16
  17. 17. Gestion de la conversation Manière implicite:composant type ejb statefull Manière explicite:des javabeans declarés dans le contexte conversation17
  18. 18. Gestion de la conversation18
  19. 19. Gestion de la conversation Demo19
  20. 20. Gestion de la conversation Nested conversation Conversation mère Sous_conversation1 Sous_conversation1.2 Sous_conversation220
  21. 21. Principe de l’injection et de la bijection @Name("connection") @Scope(ScopeType.SESSION) @Out public class ConnectionBean implements Connection { @In String id; <component name="entityManager" String password; scope="session" @In("entityManager") auto-create="true" EntityManager em; class="org.jboss.seam.core.ManagedPersistenceC ontext"> … <property } name="persistenceUnitJndiName">java:/odaceEn tityManagerFactory</property> 2121 </component>
  22. 22. Principe de l’injection et de la bijection @Stateless @Name("useraction") @Out public class UserAction implements UserIt { @In @Out private User user; @In @Out private List userList; @PersistenceContext private EntityManager em; public String addAndDisplay() { user = new User (); userList = em.createQuery("From User u order by u.name").getResultList(); return null; }22
  23. 23. Page flow Process shopping <pageflow-definition […] name="shopping"> <start-state name="start"> <transition to="browse"/> browse </start-state> <page name="browse" view-id="/browse.xhtml" redirect="true"> <transition name="browse" to="browse"/> <transition name="checkout" to="checkout"/> Browse.xhtml </page> <page name="checkout" view-id="/checkout.xhtml" redirect="true"> <transition name="checkout" to="checkout"/> checkout checkout <transition name="complete" to="complete"/> </page> <page name="complete" view-id="/complete.xhtml" redirect="true"> <end-conversation /> Checkout.xhtml </page> </pageflow-definition> complete Pageflow.jpdl.xml @Begin(join=true, processDefinition="shopping") public String doSearch() { Complete.xhtml …23 }
  24. 24. Authentification Deux composants Seam pour l’authentification: Identity contient les méthodes pour lauthentification et la connaissance létat de lutilisateur (loggé ou non etc ...) Credentials contient les données de lutilisateur.24
  25. 25. Démo Authentification25
  26. 26. Integration ajax 1/2 Librairies JSF Ajax4JSF : extension Ajax des composants JSF de base RichFaces et IceFaces (composants graphiques riches)26
  27. 27. Integration ajax 2/2 Seam remoting Appel de méthode distante comme si elle était locale. @WebRemote mycomponent=seam.compenent.getinstance(‘’mycomponent’’)27
  28. 28. Integration avec seam frameworkJBOSS server =>Weblogic, WebSphere,OC4J,Tomcat,GlassfishJSF =>Wicket, Tapestry, GWT, ou Flex EJB =>POJO, Composant Spring JExcelApi YARFRAW iText28 Jboss-Seam-Mail
  29. 29. CONCLUSION Seam a apporté une vraie valeur ajoutée à notre projet JSF/EJB3/JPA et nous a permis de gagner en productivité.29
  30. 30. * Merci pour votre attention *30

×