In questo articolo (Come definire property in un plugin custom) viene spiegato come definire (ed utilizzare) un file di property all'interno di un plugin custom.
La soluzione proposta ha però un problema: il file di property è contenuto all'interno del plugin, pertanto la modifica del valore anche solo di una property, comporta la necessità di deployare nuovamente il plugin.
Inoltre, se diverse installazioni di Liferay richiedono valori diversi, sarebbe necessario rilasciare numerose versioni dello stesso plugin; per fortuna Liferay ci viene incontro con il meccanismo include-and-override dei file di property.
La prima cosa da fare è inserire la riga seguente all'inizio(ossia comeprima riga) del file di property definito all'interno del nostro plugin,WEB-INF/src/portlet.properties
:
include-and-override=${liferay.home}/<plugin-name>-ext.properties
Com'è costituita questa riga?
${liferay.home}
è una variabile di sistema e rappresenta la cartella home di Liferay, ossia quella che tipicamente contiene i file portal-ide.properties
e portal-setup-wizard.properties
; <plugin-name>-ext.properties
rappresenta il nome del file che contiene l'override delle property di interesse.
La semplice inclusione di questa riga farà sì che tutte le property definite all'interno del file<plugin-name>-ext.propertiesandranno a sovrascrivere le omonime contenute all'interno del plugin custom, nel fileWEB-INF/src/portlet.properties.
Questo meccanismo è estremamente utile perchè consente di definire un file esterno al nostro plugin custom, in cui poter definire valori specifici senza dover modificare e rideployare il plugin stesso.
Ricordo che per leggere correttamente le property, va utilizzata l'apposita classe
PortletProps
.
Per maggiori informazioni consiglio la lettura dell'
articolo citato sopra.
Beh, ovviamente andrà riavviato il server...