I cookie ci aiutano a fornire i nostri servizi.

Utilizzando tali servizi, accetti l'utilizzo dei cookie da parte nostra. Per saperne di piu'

Approvo

Oggi voglio affrontare un argomento spesso ignorato o sottovalutato: il deploy delle portlet in ambiente multi istanza.

Pensiamo ad un server in cui siano presenti diverse istanze, una per ogni cliente della propria azienda; in una situazione del genere, quando si deploya una portlet, questa diventa disponibile in tutte le istanze.

Ma se la portlet fosse stata sviluppata per un cliente specifico? Magari a pagamento? Questo comportamento non sarebbe ideale.

La soluzione ovvia è che la portlet sia disponibile solamente nell'istanza (o nelle istanze) desiderate; fortunatamente Liferay ci viene incontro con 2 differenti approcci.

Il primo tipo di approccio è quello più semplice, ossia disabilitare la portlet in tutte le istanze in cui non serve; per fare ciò è sufficiente collegarsi come amministratore al Pannello di Controllo di ciascuna istanza e dal menu Gestore delle App andare a disattivare l'intero plugin o la singola portlet.

Questa soluzione non richiede attività di sviluppo ed è utile nei casi in cui la portlet debba essere disponibile sulla maggior parte delle istanze, altrimenti si perderebbe troppo tempo a disattivarla nelle varie istanze e bisognerebbe inoltre ricordarsi di disattivarla alla creazione di ogni nuova istanza.

In questi casi, in cui deve essere disponibile in poche istanze (se non una sola), si può procedere con il secondo approccio: abilitare la portlet nelle sole istanze in cui serve. Questo implica che la portlet sia disattiva già al deploy.

Per fare questo è necessario modificare il file liferay-portlet.xml del proprio plugin, andando ad aggiungere il seguente tag all'interno di tutti gli elementi <portlet> che si voglio disattivare:

<active>false</active>

Così facendo la portlet, una volta deployata, sarà disattiva per tutti; basterà quindi collegarsi come amministratore al Pannello di Controllo di ciascuna istanza e dal menu Gestore delle App andare ad attivare la portlet nelle istanze in cui serve.

L'unico accorgimento da tenere presente è che la portlet deve risultare disattivata (ossia dal file liferay-portlet.xml) fin dal suo primo deploy; altrimenti l'unico modo per disattivarla sarà dal Pannello di Controllo.