jboss seam, un framework per java ee 5
DESCRIPTION
Presentazione sul framework Seam di JBoss effettuata alla tappa di Roma della prima edizione di JavaDay '06.TRANSCRIPT
![Page 1: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/1.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
JBoss Seam,un framework perJava EE 5
![Page 2: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/2.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
About Marcello
Ingegnere Informatico, appassionato di Java, open source, metodologie e programmazione in generale, lavora dal 1997 nello sviluppo software, principalmente in ambito applicazioni distribuite, web e mobile internet.
Dal 2004 collabora all'organizzazione delle attività del Java User Group Milano.
Partecipa alla community open source principalmente contribuendo con localizzazioni in italiano di applicazioni esistenti e traduzioni di documentazione tecnica.
![Page 3: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/3.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
About JUG Milano
● nasce il 18 Dicembre 2002 per iniziativa di Filippo Diotalevi
● mailing list su Yahoo! Groups con più di 200 iscritti
● meeting mensili con presentazioni a cura degli iscritti
● organizziamo e partecipiamo ad eventi speciali
● partecipazione del tutto libera e gratuita
● il nostro sito web: http://www.jugmilano.it/
● facciamo parte della Top 50 dei JUG mondiali!
![Page 4: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/4.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Yet another framework?
Un nuovo framework basato su Java EE 5:● Annotations● EJB3● Java Server Faces
Seam è il primo framework proposto da JBoss!
![Page 5: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/5.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Enterprise JavaBean (EJB) 3
● Java Persistence Architecture– Hibernate in JBoss
● Interceptor (AOP)● Annotations
– lookup JNDI– POJO– lifecycle– default per XML
![Page 6: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/6.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Java Server Faces (JSF)
● UI web component● navigation handler● expression language● managed bean
– model– gestione eventi
![Page 7: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/7.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Il modello pre-Java EE 5
● domain model● DAO (integration logic)● service (business logic)● webapp● design patterns
– DTO– business delegate– MVC
![Page 8: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/8.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Un modello ideale
![Page 9: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/9.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Componenti Seam
● JSF Managed Bean che siano anche EJB● legati ad un contesto
– @Name– @Scope
● proposta di standardizzazione:JSR 299 - Web Beans
ma...
non annullano la separazione fra i layer?
![Page 10: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/10.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Contesti Seam
● i context classici delle Servlet API– request (aka event per Seam)– page– session– application
● due nuovi context “applicativi”– conversation– business process
![Page 11: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/11.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Bijection?
● @InDependency Injection applicabile a tutti i componenti Seam e non alle sole risorse gestite da Java EE 5
● @Outpubblicazione di una variabile in un componente Seam su uno specifco contesto
![Page 12: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/12.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Architettura di Seam
![Page 13: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/13.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
The Java EE 5 way
Generazione applicazione CRUD da database in Netbeans 5.5...
![Page 14: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/14.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
The Seam way
Generazione applicazione CRUD da Entity Bean con Seam via Ant...
![Page 15: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/15.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam & jBPM
● Page Flow– contesto conversation– defnizione navigazione in jPDL
● Business Process Management– uso di Hibernate (non EJB3) per persistenza
● editor visuale jPDL in JBoss IDE● integrazione componenti Seam via EL● jPDL non è uno standard
![Page 16: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/16.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam & Facelets
● JSP and JSF don't play well● defnisco il component tree in XHTML● integrato nel prossimo rilascio delle
specifche JSF?● page layout
– analogo a Tiles/SiteMesh
● page theme● progetto “vicino” a JBoss...
![Page 17: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/17.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam Remoting
● libreria JavaScript per– richiamare componenti Seam– ricevere eventi JMS (tramite polling)
● annotation @WebRemote● modalità debug
...utilizzando XHR posso applicare tecniche AJAX alle mie pagine, ma manca unsupporto a livello di componenti UI JSF...
![Page 18: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/18.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam Logging
● basato su Commons Logging● @Logger● aggiunge alle funzioni di log abituali:
– supporto varargs (a la printf)– expression language
nulla di clamoroso ma davvero utile...
![Page 19: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/19.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Altre funzionalità in Seam
● ServletFIlter per “redirect after post”● Form Validation basata su Annotations
JPA/Hibernate● supporto URL in stile REST, adatte ad
essere salvate come bookmark● supporto per Drools (aka JBoss Rules)● supporto testing con TestNG
![Page 20: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/20.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam vs. Spring
● integrazione con altre librerie OSS● override Annotation
– components.xml– seam.properties
● dependency injection vs. bijection● Seam Templates (prossimamente...)
![Page 21: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/21.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam: what's next
● versione 1.1 in CR● supporto toolkit AJAX OSS per JSF
– Ajax4JSF– IceFaces
● Seam POJO– posso evitare completamente EJB3
![Page 22: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/22.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Conclusioni
● EoD (Ease of Development)● full-stack framework● non è JBoss-only, anche se...
– può convenire avere un riferimento unico
● duplicazione funzionalità in Java EE 5 non ancora presenti in JBoss AS
● rischio di eliminare troppi layer● sindrome NIH per ciò che non è di JBoss
![Page 23: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/23.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Riferimenti
● JBoss Seamhttp://www.jboss.org/products/seam
● Spring vs. EJB3http://www.onjava.com/pub/a/onjava/2005/06/29/spring-ejb3.html
● Seam in RedHat 108https://rhstack.108.redhat.com/articles/2006/09/18/jboss-seam-the-next-generation-web-framework.html
● The Java EE 5 Tutorialhttp://java.sun.com/javaee/5/docs/tutorial/doc/index.html
![Page 24: JBoss Seam, un framework per Java EE 5](https://reader033.vdocument.in/reader033/viewer/2022060109/5557a6ded8b42a696c8b47de/html5/thumbnails/24.jpg)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Q&A
Grazie per l'attenzione.