Jak zprovoznit prostředí pro vývoj portletů a jak vytvořit portlet pro Liferay

V tomto článku najdete podrobný návod, jak si zprovoznit prostředí pro vývoj portletů s pomocí nástrojů společnosti Liferay, a jak vytvořit jednoduchý portlet. Celé zprovoznění nezabere více než jednu hodinu. Na konci budete mít k dispozici pískoviště pro zkoušení všech svých nápadů týkajících se (nejen) portletů a Liferay portálu.

Portlet & Liferay

Co je to „portlet“ si můžete přečíst třeba v mém minulém článku. Mnoho užitečných informací najdete na stránkách portálu Liferay.

Pro vývoj portletů se mi osvědčil nástroj Liferay Plugins SDK, který ovládám pomocí pluginu do vývojového prostředí Eclipse – plugin Liferay IDE.

V tomto článku popíšu postup instalace všech potřebných součástí pro vývoj portletu: Liferay portál, Liferay Plugins SDK, Liferay IDE. Na závěr přijde popis, jak vytvořit kostru nového portletu, a tipy pro uložení do verzovacího nástroje Git.

Instalace vývojového prostředí

Výchozím bodem instalačního postupu je funkční vývojové prostředí Eclipse (návod byl otestován pro Juno) a JDK 1.7. V konečném stavu nainstalujeme Liferay portál 6.1.1. CE GA2 (běžícím na Tomcat 7.0.27), Liferay Plugins SDK 6.1.1 a Liferay IDE.

Vše, co budeme instalovat pro Liferay, budeme v tomto návodu instalovat do ~/bin/liferay. Samozřejmě si můžete zvolit jiné umístění dle osobních preferencí.

  1. Instalace Liferay IDE do Eclipse:
    V Eclipse zvolíme Help → Install New Software…
    Vyplníme Work with: http://releases.liferay.com/tools/ide/eclipse/juno/stable/
    Vybereme „Liferay IDE“ a stiskneme Finish.
  2. Instalace Liferay portálu
    Stáhneme liferay-portal-tomcat-6.1.1-ce-ga2-20120731132656558.zip
    Rozbalíme archiv do ~/bin/liferay/liferay-portal-6.1.1-ce-ga2
    Spustíme skript ~/bin/liferay/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/bin/startup.sh
  3. Instalace Liferay Plugins SDK
    Stáhneme liferay-plugins-sdk-6.1.1-ce-ga2-20121004092655026.zip
    Rozbalíme archiv do ~/bin/liferay/liferay-plugins-sdk-6.1.1
  4. Import Liferay portálu do Eclipse
    V Eclipse zvolíme Window → Preferences → Server → Server Runtime Environments → Add
    Vybereme Liferay v6.1 CE (Tomcat 7) a stiskneme Next >
    Do „Liferay Tomcat Directory“ vybereme ~/bin/liferay/liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27. Pro runtime JRE vybereme Javu 1.7. Stiskneme Next > a pak Finish.
  5. Import Liferay Plugins SDK do Eclipse
    V Eclipse zvolíme Window → Preferences → Liferay → Installed Plugins SDKs → Add…
    Do „Location“ vložíme ~/bin/liferay/liferay-plugins-sdk-6.1.1, „Name“ liferay-plugins-sdk-6.1.1, zaškrtneme „Add Eclipse .project file“ a stiskneme OK.

Vytvoření portletu

Nyní máme nachystáno vše pro vytvoření nového portletu. Jak ho vyrobíme pomocí Eclipse?

  1. V Eclipse klikneme na File → New → Other → Liferay → Liferay Project → Next >
New Project

New Project

  1. Vyplníme název nového projektu, vybereme možnost Portlet a klikneme na Next >
New Portlet

New Portlet

  1. Vybereme framework Liferay MVC, zvolíme „Create custom portlet class“ a klikneme na Next >
Liferay MVC framework

Liferay MVC framework

  1. Vyplníme jméno, package a nadtřídu pro náš nový portlet (protože jsme chtěli „custom class“). Jako nadtřídu zvolíme javax.portlet.GenericPortlet, což nám umožní portlet snadno nasadit i na jiný portál než Liferay. Pak klikneme na Next >
Definice portletové třídy

Definice portletové třídy

  1. Následují dvě stránky, kde můžeme zvolit hodnoty pro deployment descriptory portletů. Oproti základnímu nastavení stačí jen vybrat „Create resource bundle file“ (abychom mohli lokalizovat texty do jiných jazyků), vše ostatní ponecháme.
Hodnoty pro deployment descriptor - portlet.xml

Hodnoty pro deployment descriptor – portlet.xml

 

Hodnoty pro Liferay deployment descriptor - liferay-portlet.xml

Hodnoty pro Liferay deployment descriptor – liferay-portlet.xml

  1. Na závěr vybereme, jaké metody chceme automaticky vytvořit. K předvybraným init a doView přidáme ještě processAction a stiskneme Finish. Tím se nám vytvoří metody, ve kterých budeme moci obsluhovat render a action fáze portletu.
Automatické vytvoření metod

Automatické vytvoření metod

  1. Pravým tlačítkem klikneme na nově vytvořený projekt, vybereme Liferay → SDK → all
Build portletové aplikace

Build portletové aplikace

Pokud je vše správně, podaří se nám vytvořenou portletovou aplikaci sestavit do balíčku .WAR, který by se již dal nasadit na kterýkoliv Liferay portál. Balíček WAR je umístěn v ~/bin/liferay/liferay-plugins-sdk-6.1.1/dist/. Pokud si spustíme Liferay portál, který máme vydefinovaný v Eclipse, náš nový portlet se do něj navíc automaticky deployuje a bude dostupný v nabídce portletů, které můžeme přidat na portálovou stránku.

Git

V naší firmě používáme pro úschovu kódu našich produktů a také interních dokumentů oblíbený verzovací nástroj Git. Nicméně Liferay Plugins SDK očekávají, že jsou portlety uložené v adresáři ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets (kde jsou také umístěny společné build soubory). Jak si poradit s tím, když chceme kód portletů přidat do existující Git repository a zároveň plně využívat možnosti Liferay Plugins SDK?

Použijeme symbolické odkazy. Celý adresář s novým portletovým projektem přesuneme do Git repository tam, kam potřebujeme, a do ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets místo něj přidáme pouze symbolický odkaz:

ln -s ~/projects/testRepository/TestPortlet-portlet/ ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets/TestPortlet-portlet

Import existujícího projektu do Eclipse

Představme si, že chceme začít pracovat na kolegově portletu, který už je někde v Git repository uložený. Protože Eclipse při importu projektů symbolické odkazy rezolvuje na skutečnou adresu, musíme použít drobný trik – krok stranou:

  1. Nejprve zkopírujeme portlet do adresáře Liferay Plugins SDK:
    cp -r ~/projects/testRepository/KoleguvPortlet-portlet/ ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets/
  2. V Eclipse zvolíme File → Import → Liferay → Liferay Projects from Plugins SDK.
  3. Pro „Liferay Plugins SDK“ vybereme liferay-plugins-sdk-6.1.1
  4. V tabulce „Projects to import“ zvolíme KoleguvPortlet-portlet a stiskneme Finish
  5. Smažeme portlet z Liferay Plugins SDK:
    rm -rf ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets/KoleguvPortlet-portlet
  6. Vytvoříme symbolický odkaz do Liferay Plugins SDK:
    ln -s ~/projects/testRepository/KoleguvPortlet-portlet/ ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets/KoleguvPortlet-portlet

Nyní si Eclipse myslí, že projekt je uložen u Liferay Plugins SDK, takže jdou vykonávat všechny potřebné příkazy pro build portletů. Kód je nicméně stále uložen v Git repository, takže pokud ho někdo aktualizuje, změny si můžeme automaticky stáhnout.

Závěr

Pro naše zákazníky jsme již vytvořili několik portletových aplikací, které jsme začlenili na jejich zákaznické portály, kde je mohou používat všichni návštěvníci. V tomto článku jste mohli nahlédnout do zákulisí vývoje portletů – na samý začátek. Pokud byste se chtěli dozvědět o vývoji portletů víc, nebo byste měli zájem si nějaký nechat vyrobit na míru, neváhejte mě kontaktovat na adrese info@bcvsolutions.eu.