(Italiano) Come installare Apache Felix Web Console in Liferay 7
Ho iniziato a lavorare e apprezzare OSGi parecchi anni or sono, insomma, prima che Liferay 7 decidesse finalmente l'adozione di questa specifica. Con OSGi e le varie implementazioni (Apache Felix, Eclipse Equinox, Apache Karaf) sono stato abituato (o meglio viziato) a utilizzare determinati strumenti di gestione che pensavo di trovare anche in Liferay, non è stato proprio così, quindi, seguitemi qualche minuto per scoprire lo strumento e come installarlo.
L'implementazione di OSGi Framework & Service platform (e altre tecnologie OSGi) che Liferay 7 adotta è quella di Apache Felix. Il progetto Apache Felix è composto da un considerevole numero di sotto progetti ognuno dei quali ricopre funzionalità specifiche. Il modulo (o sotto progetto) di Apache Felix che su Liferay 7 è stato adottato per la gestione dei bundle OSGi è Gogo. Apache Felix Gogo implementa la specifica OSGi RFC 147, che descrive una shell standard per gli ambienti OSGi-based (vedere RFC 147 per ulteriori informazioni).
In Figura 1 è mostrata la Gogo Shell alla quale possiamo connetterci via telenet sulla porta 11311 su localhost, da questa console possiamo gestire facilmente i bundle di Liferay e quelli custom (da noi sviluppati), il tutto attraverso comandi OSGi.
I bundle OSGi hanno un proprio ciclo di vita e tramite i comandi OSGi possiamo intervenire su questo ciclo di vita il cui diagramma è illustrato in Figura 2. Dal momento del deploy del bundle all'interno del container OSGi, il runtime OSGi tenta di risolvere le dipendenze del bundle. Se tutte le dipendenze richieste sono risolte, allora il bundle è posto nello stato RESOLVED altrimenti rimane nello stato INSTALLED. Ogni bundle riceverà un ID durante il processo d'installazione. Quando il bundle parte, il suo stato di partenza è STARTING, che diviene ACTIVE nel momento in cui lo startup è stato concluso con successo.
Installazione Apache Felix Web Console
Un minino d'introduzione era doverosa e per questo vi ringrazio per l'attesa. L'Apache Felix Gogo Shell è lo strumento con il quale posso gestire interamente il container OSGi. Sappiamo benissimo che non tutti sono avvezzi o comunque sono restii a utilizzare la console. Bene, il progetto Apache Felix ha un sotto progetto che si chiama Web Console, uno strumento semplice per controllare e gestire il container OSGi utilizzando il proprio browser web preferito.
Liferay 7 purtroppo non include questo strumento ma l'installazione risulta essere davvero semplice:
- Eseguo la connessione alla console Apache Felix Gogo via telnet
- Eseguo l'installazione della Web Console tramite il bundle org.apache.felix.webconsole-4.3.4.jar
A seguire sono indicati i comandi che dovreste eseguire dalla vostra console (sia Windows sia Unix/Linux/BSD) per installare la versione 4.3.4 dell'Apache Felix Web Console e verificare l'esito dell'installazione. Nel mio caso il bundle è stato installato correttamente ed assegnato l'ID 944 e anche attivato (comando start) senza nessun errore.
$ telnet localhost 11311 g! install http://central.maven.org/maven2/org/apache/felix/org.apache.felix.webconsole/4.3.4/org.apache.felix.webconsole-4.3.4.jar g! lb 944|Installed | 1|Apache Felix Web Management Console (4.3.4) g! start 513 g! lb 944|Active | 1|Apache Felix Web Management Console (4.3.4) g! disconnect $
Possiamo benissimo lasciare le configurazioni predefinite, quelle riportate nella tabella a seguire. La Web Console ha una sola dipendenza richiesta: l'implementazione dell'OSGi HTTP Service Specification (org.osgi.service.http) in esecuzione all'interno del container.
Proprietà | Valore predefinito | Descrizione |
manager.root | /system/console | Il root path della OSGi Management Console. |
username | admin | La username dell'utente abilitato per l'accesso alla OSGi Management Console. Per disabilitare l'autenticazione lasciare il valore vuoto. Il metodo di autenticazione predefinito è HTTP BASIC che può essere cambiato. |
password | admin | La password dell'utente abilitato alla OSGi Management Console. |
L'end point della Web Console nel contesto Liferay 7 è http://localhost:8080/o/system/console. Il partial path /o deriva dal fatto che Liferay ha configurato l'end point HTTP OSGi sul context /0/ definito sul web.xml in
- $LIFERAY_HOME/tomcat-9.0.6/webapps/ROOT/WEB-INF/web.xml
Detto ciò possiamo puntare il nostro browser preferito verso la URL http://localhost:8080/o/system/console e dopo l'autenticazione dovremmo vedere la lista del bundle installati, così come mostrato in Figura 3. In Figura 4 mi son spostato sulla parte di configuration management e da qui ho modificato il parametro di configurazione che imposta la directory della document library di Liferay, mentre in Figura 5 è mostrato il dettaglio del bundle Liferay Portal Cache Single (com.liferay.portal.cache.single).
Questo tool che ho utilizzato in passato è davvero comodo e riportalo su Liferay 7 è stato quasi naturale. Uno strumento del genere è sicuramente più semplice da utilizzare per coloro che faranno amministrazione della piattaforma Liferay. L'accesso alla Web Console può essere reso ancora più sicuro utilizzando pattern d'infrastruttura comuni.