Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
1. Liferay – Quick Start
1° Episodio
Bundle Tomcat and Plugin SDK
Antonio Musarra’s Blog
Twitter: @antonio_musarra
Email: antonio.musarra@gmail.com
Blog: www.dontesta.it
GitHub: github.com/amusarra
SlideShare: slideshare.net/amusarra
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
Liferay is a trademark of Liferay, Inc. in the United States, the European Union and other countries. The Liferay Logo is a trademark of Liferay Inc. in the United States, the European Union and other countries.
2. Sommario
• Liferay Overview
• Quick Start
• Tomcat Bundle
• Plugins SDK
• Risorse
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
1
3. Liferay Overview
• Liferay è un Enterprise Portal free e Open Source scritto in Java
• E’ costituito da tre parti fondamentali
• Un Kernel (Liferay Portal) che funge da base per le applicazioni e i contenuti
• Un Content Management System (Liferay CMS)
• Una suite di applicazioni per realizzare collaboration e social networks (Liferay
Collaboration)
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
2
4. Liferay Overview
È basato su un'architettura di tipo Service Oriented (SOA) che rende possibile la
realizzazione di applicazioni chiamate Portlet a partire da Servizi Web esistenti.
Liferay è standard. Le Portlet sono definite dagli standard JSR-168 e JSR-286 e
sono componenti che definiscono il markup della singola applicazione all'interno di
una pagina del portale.
Le Portlet sono gestite da un Portlet Container e da un Portal Server, responsabile
di servire le pagine al browser o al client. Questi due sistemi, insieme, costituiscono
l'infrastruttura del portale necessaria al deployment delle applicazioni.
Il Service Builder è un code-generator che permette di generare automaticamente
entità, script sql e classi di interfaccia al database
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
3
5. Liferay Overview
• Liferay è Developer Friendly
• E’ compatibile con l’infrastruttura IT esistente
• Aderisce e contribuisce alla definizione di nuovi standard
• Utilizza un sistema di autorizzazioni granulare
• Integrazione semplificata con i più comuni meccanismi di Single Sign On (SSO)
• Semplifica le attività di Enterprise Application Integration (EAI)
• Eseguire le altre applicazioni (PHP, Ruby, Python) in Liferay
• Aiuta a diventare social grazie a tag library, set di API, Widget e Mashup
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
4
6. Liferay Overview
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
5
Liferay segue i seguenti approcci architetturali
Model Driven Architecture (MDA)
Platform Independent Model (PIM)
Platform Specific Model (PSM)
Domain Specific Model (DSM)
Sviluppare e estendere funzionalità su Liferay è reso
possibile e agevole grazie a vari framework, i
principali sono:
Extension Envinronment
Plugins Framework
Asset Framework
7. Quick Start
Cosa occorre fare per essere rapidamente operativi su Liferay Portal?
• Scaricare e installare la Sun/Oracle JDK 6, consigliata la versione 7 della JDK. Se
non si dispone dell’ambiente Java installato nel proprio ambiente non è un
problema, il Portal Bundle è fornito con Java JRE e sarà in grado di eseguire il
portale
• Scaricare il Portal Bundle direttamente dalla sezione download del portale
liferay.com. E’ consigliato iniziare la propria esperienza con il Bundle with Tomcat
da installare sulla propria workstation
• Run Liferay Portal e andare all’indirizzo http://localhost:8080 accedendo con le
credenziali test@liferay.com/test
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
6
8. Tomcat Bundle
• Il Bundle with Tomcat è la soluzione veloce e consigliata per l’installazione del portale in
ambiente di sviluppo e comunque è facile trovare installazioni Liferay in esecuzione su
Tomcat anche in ambienti di produzione
• Liferay è una Servlet Application che può essere installata su tutti gli Application Server
che sono JSR154 compliant
• Liferay è inoltre distribuito in bundle anche su:
• Geronimo
• Glassfish
• JBoss
• Jetty
• Resin
• JOnAS + Tomcat
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
7
9. Tomcat Bundle – Filesystem Layout
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
8
• bin: è la directory contenente i file eseguibili di
Tomcat
• conf: è la directory contenente i file di
configurazione di Tomcat
• lib: è la directory che contiene i jar comuni a tutte
le Web Application di Tomcat
• lib/ext: Ci sono e andranno
• i driver di connessione al data base
• le librerie che implementano JavaMail
• la libreria portlet.jar che contiene la
definizione del JSR168 e JSR286
• la libreria portal-service.jar che contiene i
bridge che permettono ai singoli portlet di
invocare il Service Layer del core di Liferay
Gli eventuali Services sviluppati o di terze parti
devono essere posizionati all’interno di lib/ext.
• webapps: È la directory dove saranno installati
tutti i nostri plugin (temi, layout, portlet, hooks,
etc.) e dove viene installata la webapp che
conterrà̀ Liferay.
10. Tomcat Bundle – Filesystem Layout
• I file della directory bin di nostro interesse sono:
• catalina.[bat|sh]. All’interno di questi file è possibile specificare il percorso della JDK o JRE
tramite l'impostazione delle properties:
• JAVA_HOME: nel caso d’utilizzo della JDK. Ricordo anche la possibilità di leggere il percorso della JDK
dall’environment JAVA_HOME
• JRE_HOME: nel caso d’utilizzo della JRE. Ricordo anche la possibilità di leggere il percorso della JRE
dall’environment JRE_HOME
• setenv.[bat|sh]. All’interno di questo file è possibile indicare le risorse in termini di memoria:
• -Xms: imposta il valore iniziale della heap
• -Xmx: imposta il valore massimo della heap
• -XX:MaxPermSize: imposta il valore della PermGen
• startup.[bat|sh] e shutdown.[bat.sh]: I comandi per accendere e spegnere Tomcat
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
9
11. Leveraging the Plugins SDK
• Liferay mette a disposizione degli sviluppatori un Software Development Kit (SDK)
basato su Apache Ant che può essere utilizzato con qualsiasi editor o ambiente di
sviluppo integrato (IDE). L’SDK è lo strumento essenziale per lo sviluppo delle
proprie applicazioni Liferay.
• Da qualche anno Liferay ha reso disponibile l’SDK Plugin basato su Apache Maven
• Liferay ha realizzato un IDE (Open Source) basato sull’ambiente di sviluppo Eclipse
che semplifica lo sviluppo di ogni tipo di plugin per Liferay
• Esiste anche una versione commerciale dell’IDE che si chiama Liferay Developer
Studio sempre basato su Eclipse che contiene alcune caratteristiche aggiuntive per
lo sviluppo sull’edizione commerciale (Enterprise) di Liferay
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
10
12. Leveraging the Plugins SDK
Tramite questo strumento di sviluppo è possibile quindi:
• Realizzare Portlet. Applicazioni Web scritte in Java che sono eseguite all’interno di
una porzione di una pagina web
• Estendere e personalizzare Liferay attraverso gli Hook
• Personalizzare il look and feel attraverso i Themes
• Aggiungere dei nuovi layout di pagina attraverso i Layout Template
• Implementare nuove estensioni avanzate attraverso gli Ext
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
11
13. Leveraging the Plugins SDK
Il Plugins SDK è articolato su diversi folder, dove sei di questi folder sono dedicati a rispettivi tipi di
plugin.
• liferay-plugins-<version>/ - Plugins SDK root directory
• ext/ - Ext plugins directory
• hooks/ - hook plugins directory
• layouttpl/ - layout templates directory
• portlets/ - portlet plugins directory
• themes/ - themes plugins directory
• webs/ - web plugins directory
Tramite file di properties è possibile agire per esempio sull’ambiente di deployment e altre
impostazioni di configurazione. Esistono due file di properties, uno globale e uno specifico per utente
(esempio: build.<username>.properties), quest’ultimo sovrascrive le impostazioni del primo.
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
12
14. Leveraging the Plugins SDK
I nuovi plugin sviluppati sono messi all’interno della sottodirectory del tipo plug-in appropriato. Ad
esempio, un nuovo portlet denominato “shirus-portlet” dovrebbe risiedere in:
• liferay-plugins-[version]/portlets/shirus-portlet
Per ogni tipo di plugin esiste il file build.xml di Ant, tramite il quale è possibile eseguire i seguenti task:
• build-service: costruisce il livello di servizio per un plugin, utilizzando Liferay servizio Builder
• clean: pulisce i file residui creati durante la compilazione, archiviazione e distribuzione
• compile: compilazione del plugin e posizionamento del WAR dentro la directory dist
• deploy: builds e deploys il plugin sull’Application Server
• format-source: formatta il codice sorgente secondo le linee guida di Liferay e informa su eventuali
violazioni.
• format-javadoc: formatta i Javadoc
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
13
15. Risorse
Con queste “14 misere” slide ho cercato d’introdurre Liferay e come iniziare con il piede
giusto per affrontare lo sviluppo di applicazioni ai voi che siete proprio “novelli”. Spero di
essere riuscito con questo primo episodio a suscitare la vostra curiosità e interesse.
Vi lascio con delle ottime risorse da consulture per i vostri approfondimenti.
• Liferay Developer Network
• Liferay Community Blog
• Antonio Musarra’s Blog
• D’vel Blog
• Marco Napolitano
(C) Antonio Musarra's Blog 2009 - 2015 {http://www.dontesta.it} - Release 1.0/IT 31/03/2015 - CC BY-NC-SA 3.0 IT {http://goo.gl/uZj1IQ}
14