JBoss Seam, un framework per Java EE 5

24
Marcello Teodori [email protected] JUG Milano Javaday Roma - 02/12/2006 Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License 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 of JBoss Seam, un framework per Java EE 5

Page 1: JBoss Seam, un framework per Java EE 5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006

Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License

Q&A

Grazie per l'attenzione.