Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Menu
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Cerca
Chiudi

Nel numero:

143 settembre
, anno 2009

Open Web Beans

L‘implementazione Apache della specifica Sun JSR-299

Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.

MokaByte

Open Web Beans

L‘implementazione Apache della specifica Sun JSR-299

Guglielmo Iozzia

Guglielmo Iozzia

  • Questo articolo parla di: Architetture dei sistemi, Frameworks & Tools, Java

Negli articoli precedenti abbiamo parlato dettagliatamente dei Web Beans spiegando come esistano delle specifiche a tal proposito. In questo articolo presentiamo gli Open Web Beans, ossia l‘implementazione Apache delle specifiche Sun JSR-299 del modello a componenti stateful e contestuale.

 

Che cosa è Open Web Beans?

Open Web Beans è l’implementazione Apache delle specifiche JSR-299 relative ai Web Beans. È rilasciata open source secondo la licenza ASL (Apache Software License) [1].
Come già spiegato nella serie di articoli sull’argomento [2], le specifiche Web Beans rappresentano un tentativo di definire un modello a componenti stateful e contestuale e la sua gestione nell’ambito di applicazioni enterprise basate su Java EE 5 e 6. Sappiamo già che prima di Web Beans non esisteva alcun approccio standardizzato relativamente all’integrazione tra il presentation layer e il transactional layer di una applicazione (si pensi per esempio ad applicazioni basate su JSF ed EJB Session Bean per capire le difficoltà a cui si andava incontro). Web Beans si occupa della gestione e del lifecycle dei componenti all’interno del container secondo un proprio standard e facendo ampio uso delle annotations, introdotte in Java a partire dalla versione 5.0, per facilitarne la configurazione. Abbiamo anche visto che Web Beans non è limitato al solo ambito degli EJB container, ma può anche essere usato esternamente, anche in un contesto Java SE.
Open Web Beans è responsabile della implementazione del runtime container conforme alle specifiche Web Beans. Oltre a tale implementazione, il core di Open Web Beans comprende anche alcuni componenti bult-in che semplificano la vita dello sviluppatore nell’ambito della complessa interazione con altre operazioni specifiche di Java EE (messaging, logging, security, etc.).

Moduli di Open Web Beans

Open Web Beans è costituito da un core piccolo e da un insieme di plugin. Il core comprende l’implementazione delle funzionalità di base delle specifiche che non contengono riferimenti ad altre tecnologie Java EE. Esso rappresenta l’implementazione del framework per la dependency injection. È valido sia per Java Web container semplici, come Tomcat o Jetty, che per container Java EE, quali ad esempio JBoss o Geronimo. Il codice del core può essere scaricato dal repository SVN [3].
I plugin disponibili sono:

  • JPA plugin: usato per l’implementazione di tutto ciò che riguarda le Java Persistence API. Questo plugin inietta il persistent context e i persistent units di JPA usando le annotazioni @PersistentContext e @PersistentUnit. Il plugin fornisce, nell’ambito di utilizzo di EJB container full Java EE, il transactional entity manager. Il codice di tutto ciò che è prettamente legato al core JPA è scaricabile dal repository SVN [4]. Invece il core per l’injection del transactional entity manager è scaricabile dal repository SVN [5].
  • JMS plugin: usato per l’implementazione delle funzionalità relative a JMS (Java Message Service). Questo modulo può essere scaricato dal repository SVN [6].
  • JSF plugin: usato per l’implementazione delle funzionalità relative a JSF (Java Server Faces). Può essere scaricato dal repository SVN [7].
  • EJB plugin: usato per l’implementazione delle funzionalità relative alle specifiche EJB (Enterprise Java Bean). Attualmente è ancora in fase di definizione e di sviluppo.

Configurazione

Open Web Beans, una volta scaricato, può essere utilizzato in una applicazione dopo averne correttamente impostato i valori delle proprietà dei suoi file di configurazione. Il principale fra questi file è openwebbeans.properties, che si trova nella directory META-INF/openwebbeans/. Inizialmente tutte le proprietà sono impostate con i valori di default. Tali proprietà sono:

  • org.apache.webbeans.spi.JNDIService: usata per la configurazione dell’implementazione del servizio JNDI. Il valore di default è org.apache.webbeans.spi.se.JNDIServiceStaticImpl. L’implementazione di default può essere usata con Tomcat e Jetty. Altrimenti va impostata a org.apache.webbeans.spi.ee.JNDIServiceEnterpriseImpl per poter utilizzare implementazioni del JNDI service specifiche per container Java EE.
  • org.apache.webbeans.spi.TransactionService: indica il transaction service da utilizzare. Il valore di default è org.apache.webbeans.spi.ee.TransactionServiceJndiImpl.
  • org.apache.webbeans.spi.JPAService: indica il JPA service da utilizzare. Il valore di default è org.apache.webbeans.jpa.spi.se.JPAServicePersistenceImpl.
  • org.apache.webbeans.spi.deployer.MetaDataDiscoveryService: indica il discovery service che esegue il find degli artefatti Web Beans. Il valore di default è org.apache.webbeans.spi.ee.deployer.WarMetaDataDiscoveryImpl.
  • org.apache.webbeans.spi.conversation.ConversationService: indica quale JSF conversation service va utilizzato. Il valore di default è org.apache.webbeans.spi.conversation.jsf.JSFConversationServiceImpl.

Qualora, oltre al core, si vogliano utilizzare anche dei plugin, bisogna aggiungere i JAR di questi ultimi nel classpath dell’applicazione. I plug-in di Open Web Beans vengono riconosciuti tramite il java.util.ServiceLoader. Ciascun plugin contiene il proprio file META-INF/service/org.apache.webbeans.plugins.OpenWebBeansPlugin, all’interno del quale viene indicata la classe che implementa il plugin corrispondente. Allo startup dell’applicazione, l’implementazione di Open Web Beans esegue una ricerca dei propri plugin e registra tutti quelli trovati.
Tutti i plugins, nelle applicazioni Java web based che includono Open Web Beans, vengono configurati tramite il Servlet Context Listener. Il listener di Open Web Beans va dichiarato esplicitamente nel web deployment descriptor (web.xml) applicativo:

    org.apache.webbeans.servlet.WebBeansConfigurationListener

Nel caso in cui si vogliano utilizzare funzionalità JSF, bisogna specificarlo nel seguente modo (sempre nel web.xml

file):

    webbeans
    org.apache.webbeans.jsf.WebBeansJSFFilter


    webbeans
    Faces Servlet

Conclusioni

Open Web Beans è un progetto ancora in fase di evoluzione, ma rappresenta un valido riferimento per capire e poter utilizzare concretamente le specifiche Web Beans in una applicazione Java. Al fine di verificare tale validità, consiglio caldamente di dare anche uno sguardo approfondito ai numerosi esempi scaricabili dal repository SVN indicato al link [8] dei riferimenti.

Riferimenti

[1] Apache Software License
http://www.apache.org/licenses/

[2] Guglielmo Iozzia, “Web Beans. I parte: Introduzione e specifiche”, MokaByte 138, Marzo 2009 e successivi articoli della serie
https://www.mokabyte.it/cms/article.run?articleId=2U2-E3P-NNC-6VT_7f000001_10911033_0a4a63e2

[3] Open Web Beans core SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/webbeans-impl/

[4] JPA plugin core SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/webbeans-jpa

[5] Geronimo module SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/webbeans-geronimo

[6] JMS plugin module SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/webbeans-jms

[7] JSF plugin module SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/webbeans-jsf

[8] Open Web Beans examples SVN repository URL
https://svn.apache.org/repos/asf/incubator/openwebbeans/trunk/samples/

 

 

 

Facebook
Twitter
LinkedIn
Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.

Guglielmo Iozzia

Guglielmo Iozzia

Guglielmo Iozzia si è Laureato nel 1999 in Ingegneria Elettronica (indirizzo Biomedico) presso l‘Università di Bologna. Ha progettato e realizzato un software diagnostico per la predizione dell‘andamento della pressione intracranica in pazienti in terapia intensiva neurochirurgica. Frequenta il mondo Java dall‘inizio del 2000. Dopo numerose esperienze presso un‘azienda di Bologna del settore IT (fino all‘aprile del 2006), e per qualche mese in una analoga società di Roma, ha scelto la libera professione, lavorando per RAI Net fino ai primi mesi del 2008. In seguito è diventato Senior IT Consultant per la FAO (Food and Agriculture Organization of the United Nations). In ambito FAO ha dedicato quasi tutto il 2012 al progetto GRMS (Global Resources Management System) in qualità di "Web Services and cross-environmental integration specialist". Da luglio 2013 si è trasferito a Dublino, dove ricopre il ruolo di SVT Automation Engineer per IBM Ireland.
Tutti gli articoli
Nello stesso numero
Loading...

Strumenti di build e test con Groovy

IV parte: Groovy Testing

ZK, un semplice e potente web framework basato su Ajax

I parte: Simplicity matters!

WebSphere in cluster

II parte: Creazione di un server standalone

Appunti avanzati di Hibernate

II parte: I metodi di sessione

Nella stessa serie
Loading...

Introduzione a Wicket Web Beans

III parte: Altri strumenti importanti

Introduzione a Wicket Web Beans

II parte: Personalizzare le applicazioni

Introduzione a Wicket Web Beans

I parte: Caratteristiche principali

Web Beans

V parte: La gestione degli eventi

Web Beans

IV parte: Il ciclo di vita di un Web Bean

Web Beans

III parte: Deployment types e stereotipi

Web Beans

II parte: L‘importanza degli scope

Web Beans

I parte: Introduzione e specifiche

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte