Your SlideShare is downloading. ×
Seam unifies Java EE by Massimiliano Ciccazzo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Seam unifies Java EE by Massimiliano Ciccazzo

1,012
views

Published on

Abstract: …

Abstract:

* Introduzione a Seam ;
* Ciclo di vita di Seam;
* Component and context;
* Absolute Inversion of Control;
* Rapid Seam development (con esempio di start-up su eclipse o se si preferisce a linea di comando);
* Differenze sostanziali con la versione 3.0 / Ajax and Javascript remoting


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,012
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JBoss Seam unifies JavaEE 5
  • 2. Sommario
    • Tecnology Timeline
    • 3. Annotation @
    • 4. JSF
    • 5. EJB3
    • 6. Seam Overview
    • 7. PageFlow e processi di business
    • 8. Rapid Seam Development
    • 9. Conclusioni
  • 10. Tecnology Timeline
  • 11. 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;
    • 12. Generazione del codice;
    • 13. A runtime;
    • 14. Controlli;
    • 15. Gestione avanzata della business logic.
  • 16. JavaServer Faces
    • Framework per il presentation tier;
    • 17. Simile all'approccio coi più comuni Framework MVC;
    • 18. Modello di sviluppo “event-driven”;
    • 19. Modello basato a componenti;
    • 20. Un insieme di componenti di interfaccia predefiniti;
    • 21. Gestione del flusso di navigazione;
    • 22. Ideato per essere utilizzato dai vari IDEs.
  • 23. 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);
    • 24. Eliminazione di gran parte dell' xml (descrittori) e inserimento delle annotation;
    • 25. EntityBeans facilmente sostituibili con un ORM;
    • 26. JNDI può essere sostituito con DI (es. @Resource).
  • 27. Seam Overview
    • Integrazione JSF e EJB3
    • 28. Modello di componenti uniforme
    • 29. Integrazione Ajax e jBPM
    • 30. Bijection
    • 31. Workspace management
    • 32. Uso di POJOs annotati
    • 33. Integrazione di TestNG
  • 34. Architettura di Seam
  • 35. Contesto in Seam
  • 43. 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
  • 44. 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
          • 45. interface.js
        • Annotation per I metodi di business
          • @WebRemote
        • Debugging
    <a4jsf:poll reRender=&quot;total&quot; interval=&quot;1000&quot; /> Interroga il server, e rigenera un'area (“total”) come occorre < script   type = &quot;text/javascript&quot;   src = &quot;seam/resource/remoting/resource/remote.js&quot; > </ script> @Stateless @Name( &quot;helloAction&quot; ) public   class  HelloAction  implements  HelloLocal {      public  String sayHello() {          return   &quot;Hello, Jug Roma&quot; ;     } } @Local public   interface  HelloLocal {   @WebRemote    public  String sayHello(String name); } Nella pagina helloWorld.xhtml viene inserito : < s:remote   include = &quot;helloAction&quot; /> Oppure < script   type = &quot;text/javascript&quot;   src = &quot;seam/resource/remoting/interface.js?helloAction&quot; / > < script   type = &quot;text/javascript&quot; >    //<![CDATA[ function sayHello() {      Seam.Component.getInstance(&quot;helloAction&quot;).sayHello(sayHelloCallback);    } function sayHelloCallback(result) {      alert(result);    }// ]]> </ script > Pulsante : < button   onclick = &quot;javascript:sayHello()&quot; > Say Hello </ button>
  • 46. Componenti per sviluppare con Seam
    • Entities (classi di dominio)
    • 47. DAOs (classi di persistenza)
    • 48. Services (application classes)
    • 49. Action (controller classes)
    • 50. Web Pages (view)
  • 51. Annotazioni per i componenti
    • @Name(“componentName”)
    • 52. @Scope(ScopeType.*)
    • 53. @Startup
        • @Scope(APPLICATION) @Startup
    • @Install
        • @Install(dependencies=”nomeComponente”)
    • @AutoCreate
    @Name( &quot;jugExample&quot; ) @Stateless public   class  JugExample {      //Insert your code }
  • 54. Annotazioni per la Bijection
    • @In
        • required (true o false)
        • 55. create ( true o false )
        • 56. value ( variabile di contesto o JSF EL )
      • @Out
        • required (true o false)
        • 57. scope (ScopeType.*)
        • 58. value (variabile di contesto)
      • @Factory
        • value (variabile di contesto)
        • 59. scope (ScopeType.*)
        • 60. autoCreate
    @Name( &quot;loginAction&quot; ) @Stateless public   class  LoginAction  implements  Login {       @In( &quot;#{user.username}&quot; ) String username; //Insert your code } @Name( &quot;loginAction&quot; ) @Stateless public   class  LoginAction  implements  Login {       @Out  private User user; //Insert your code } @Factory (scope= CONVERSATION ) public  List<Customer > getCustomerList() {        return  ... ; }  
  • 61. Altre Annotazioni
    • Per la gestione del contesto
    • 62. Per il ciclo di vita dei componenti
    • 63. Per le eccezioni
    • 64. Per il remoting
    • 65. Per gli interceptor
    • 66. etc...
  • 67. PageFlow e processi di business
    • Due modelli di interazione
        • PageFlow JSF (pages.xml)
        • 68. PageFlow jBPM (*.jpdl.xml)
    • Editor visuale con Jboss Tools
    • 69. Integrazione componenti Seam con Jboss EL
    • 70. JBPM non e' uno standard!
  • 71. PageFlow e processi di business...
  • 72. Rapid Seam Development
    • Jboss Tools
    • 73. Seam-gen (tramite console)
    • 74. Gestione del workspace
    • 75. Ant build integrato e generato
    • 76. Maven support
    • 77. iText
    • 78. iPDF
    • 79. Integrazione Quartz e jFreeChart dalla v. 2
  • 80. Conclusioni
    • Non e' JBoss-only supporto a molteplici AS
    • 81. Rischio sulla progettazione, si potrebbero eliminare troppi layer
    • 82. Sindrome da legame a JBoss
    • 83. Application framework
    • 84. Nuova versione Seam 3 in beta testing
  • 85. 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
  • 86. 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 :
          • [email_address]