4. Le framework JBoss Seam est un framework Open Source
à l'initiative de Gavin King
(fondateur du framework Hibernate).
Premiere version:seam 1.0 sortie en juin 2006
4
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. 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
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 »)
16. Gestion des événements assynchrones avec seam
<components>
<event type="PostAdded">
<action
execute="#{PostAddedListener.info
rm}"/>
</event>
</components>
16
17. Gestion de la conversation
Manière implicite:composant type ejb statefull
Manière explicite:des javabeans declarés dans
le contexte conversation
17
20. Gestion de la conversation
Nested conversation
Conversation mère
Sous_conversation1
Sous_conversation1.2
Sous_conversation2
20
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>
21
21 </component>
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
24. Authentification
Deux composants Seam pour l’authentification:
Identity contient les méthodes pour
l'authentification et la connaissance l'état de
l'utilisateur (loggé ou non etc ...)
Credentials contient les données
de l'utilisateur.
24
26. Integration ajax 1/2
Librairies JSF
Ajax4JSF : extension Ajax des composants
JSF de base
RichFaces et IceFaces
(composants graphiques riches)
26
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. Integration avec seam framework
JBOSS server =>Weblogic, WebSphere,OC4J,Tomcat,Glassfish
JSF =>Wicket, Tapestry, GWT, ou Flex
EJB =>POJO, Composant Spring
JExcelApi
YARFRAW
iText
28
Jboss-Seam-Mail
29. CONCLUSION
Seam a apporté une vraie valeur ajoutée à
notre projet JSF/EJB3/JPA et nous a
permis de gagner en productivité.
29