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

Liferay consente di creare diverse tipologie di plugin (portlet, hook, theme, ...) e ciascuna di queste possiede la propria specifica cartella all'interno del SDK.

Esiste però una tipologia di plugin, che non produce un WAR da deployare, ma che è estremamente utile perchè consente di creare delle vere e proprie librerie distribuibili e riusabili: si tratta del plugin di tipo shared e vediamo quindi come crearlo ed utilizzarlo.

Innanzitutto occorre precisare che, al momento in cui scrivo questo post, Liferay IDE (ossia il plugin Eclipse per supportare lo sviluppo) non fornisce alcun supporto alla creazione di plugin shared, pertanto occorre fare tutto a mano.

Come prima cosa avviamo Eclipse e creiamo un nuovo Java Project:

  1. il nome del progetto dovrà avere per convenzione suffisso -shared, ad esempio my-libray-shared;
  2. la cartella in cui creare il progetto dovrà essere la cartella shared del SDK di Liferay;
  3. aggiungiamo la cartella src dei sorgenti e quella lib per le eventuali librerie;
  4. suggerisco di chiamare classes la cartella dei compilati anzichè bin.

Una volta che il progetto sarà creato all'interno di Eclipse, creiamo al suo interno il file Ant build.xml con il seguente contenuto:

<?xml version="1.0"?>
<!DOCTYPE project>

<project name="my-library-shared" basedir="." default="deploy">
    <property name="plugin.version" value="1" />

    <import file="../build-common-shared.xml" />
</project>

Fatto questo, apriamo il file build.xml nella vista Ant di Eclipse e lanciamo il target Ant setup-eclipse che provvederà a configurare tutte le dipendenze del progetto Java; alcune di queste dipendenze (portal-service.jar, util-bridges.jar, util-java.jar, util-taglib.jar) sono specifiche dell'application server e non verranno risolte ma se state utilizzando Tomcat le potete trovare nella cartella webapps/ROOT/WEB-INF/lib.

La configurazione del plugin shared è terminata, ora possiamo scrivere le classi che ci servono al suo interno.

Ok, ma come possiamo utilizzarlo? E' sufficiente inserire all'interno del file build.xml di ogni plugin custom in cui serve la dipendenza (tipicamente portlet), la seguente proprietà che contiene l'elenco (separato da virgola) di tutti i plugin shared necessari:

<property name="import.shared" value="my-libray-shared" />

A questo punto, ogni volta che verrà lanciato il target Ant compile del plugin custom, il SDK creerà automaticamente il JAR del plugin shared e lo includerà staticamente tra le dipendenze. Attenzione che non parliamo della compilazione automatica di Eclipse ma del solo target Ant compile del SDK.

In alternativa è anche possibile utilizzare il target compile-import-shared che si occuperà semplicemente di fare il JAR del plugin shared, senza ricompilare tutto il plugin custom che lo utilizza.