La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

JBoss Seam unifies JavaEE 5. Sommario Tecnology Timeline JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni.

Presentazioni simili


Presentazione sul tema: "JBoss Seam unifies JavaEE 5. Sommario Tecnology Timeline JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni."— Transcript della presentazione:

1 JBoss Seam unifies JavaEE 5

2 Sommario Tecnology Timeline Annotation @ JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni

3 Tecnology Timeline EJB3JSF Jboss SEAM MVC JSP Servlets ORM EJB2 JDBC

4 Annotation @ Introdotti con la piattaforma J2EE 1.5, semplificano lo sviluppo e la fase di deploy, rimuovendo rispetto alla J2EE 1.4 la necessità dei descrittori. Le Java Annotations sono metadati (data about data) associati a parti di codice (classi, interfacce, metodi e campi) e servono ad aggiungere informazioni reperibili successivamente e utilizzabili nei più svariati modi: Documentazione del codice; Generazione del codice; A runtime; Controlli; Gestione avanzata della business logic.

5 JavaServer Faces Framework per il presentation tier; Simile all'approccio coi più comuni Framework MVC; Modello di sviluppo “event-driven”; Modello basato a componenti; Un insieme di componenti di interfaccia predefiniti; Gestione del flusso di navigazione; Ideato per essere utilizzato dai vari IDEs.

6 EJB 3 Parte della J2EE: Sicurezza, gestione del ciclo di vita, accesso remoto, persistenza, gestione della concorrenza, etc... Modello semplificato rispetto alla versione precedente (EJB 2.1); Eliminazione di gran parte dell' xml (descrittori) e inserimento delle annotation; EntityBeans facilmente sostituibili con un ORM; JNDI può essere sostituito con DI (es. @Resource).

7 Seam Overview Integrazione JSF e EJB3 Modello di componenti uniforme Integrazione Ajax e jBPM Bijection Workspace management Uso di POJOs annotati Integrazione di TestNG

8 Architettura di Seam

9 Contesto in Seam Stateless Event Page Conversation Session Business Process Application Es. ( @Scope(ScopeType.SESSION) )

10 Bijection @In applicabile a tutti i componenti Seam e non alle sole risorse gestite da Java EE 5 @Out pubblicazione di una variabile in un componente Seam su uno specifico contesto

11 Ajax e Seam Supporto Ajax JSF (RichFaces, IceFaces) I client AJAX possono invocare componenti server side facilmente e senza la necessita di un action layer intermedio @WebRemote JavaScript di supporto per la view remote.js interface.js Annotation per I metodi di business @WebRemote Debugging Interroga il server, e rigenera un'area (“total”) come occorre <script type="text/javascript" src="seam/resource/remoting/resource/remote.js"> @Stateless @Name("helloAction") public class HelloAction implements HelloLocal { public String sayHello() { return "Hello, Jug Roma"; } @Local public interface HelloLocal { @WebRemote public String sayHello(String name); } Nella pagina helloWorld.xhtml viene inserito : Oppure //<![CDATA[ function sayHello() { Seam.Component.getInstance("helloAction").sayHello(sayHelloCallback); } function sayHelloCallback(result) { alert(result); }// ]]> Pulsante : Say Hello

12 Componenti per sviluppare con Seam Entities (classi di dominio) DAOs (classi di persistenza) Services (application classes) Action (controller classes) Web Pages (view)

13 Annotazioni per i componenti @Name(“componentName”) @Scope(ScopeType.*) @Startup @Scope(APPLICATION) @Startup @Install @Install(dependencies=”nomeComponente”) @AutoCreate @Name("jugExample") @Stateless public class JugExample { //Insert your code }

14 Annotazioni per la Bijection @In required (true o false) create ( true o false ) value ( variabile di contesto o JSF EL ) @Out required (true o false) scope (ScopeType.*) value (variabile di contesto) @Factory value (variabile di contesto) scope (ScopeType.*) autoCreate @Name("loginAction") @Stateless public class LoginAction implements Login { @In("#{user.username}") String username; //Insert your code } @Name("loginAction") @Stateless public class LoginAction implements Login { @Out private User user; //Insert your code } @Factory(scope=CONVERSATION) public List getCustomerList() { return... ; }

15 Altre Annotazioni Per la gestione del contesto Per il ciclo di vita dei componenti Per le eccezioni Per il remoting Per gli interceptor etc...

16 PageFlow e processi di business Due modelli di interazione PageFlow JSF (pages.xml) PageFlow jBPM (*.jpdl.xml) Editor visuale con Jboss Tools Integrazione componenti Seam con Jboss EL JBPM non e' uno standard!

17 PageFlow e processi di business...

18 Rapid Seam Development Jboss Tools Seam-gen (tramite console) Gestione del workspace Ant build integrato e generato Maven support iText iPDF Integrazione Quartz e jFreeChart dalla v. 2

19 Conclusioni Non e' JBoss-only supporto a molteplici AS Rischio sulla progettazione, si potrebbero eliminare troppi layer Sindrome da legame a JBoss Application framework Nuova versione Seam 3 in beta testing

20 Riferimenti JBoss Seam http://seamframework.org Jboss Tools http://www.jboss.org/tools Eclipse http://www.eclipse.org RichFaces http://www.jboss.org/richfaces IceFaces http://www.icefaces.org

21 Qualcosa sull'autore Massimiliano Ciccazzo Istruzione : Laurea in Ingegneria Informatica – Universita' degli studi di Roma “La Sapienza” JAVA : Sviluppatore dal 2003; Professional : Project Leader in Ingegneria informatica S.p.A. Contatti : massimiliano@ciccazzo.it


Scaricare ppt "JBoss Seam unifies JavaEE 5. Sommario Tecnology Timeline JSF EJB3 Seam Overview PageFlow e processi di business Rapid Seam Development Conclusioni."

Presentazioni simili


Annunci Google