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í.
- 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. - 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 - 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 - 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. - 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?
- V Eclipse klikneme na File → New → Other → Liferay → Liferay Project → Next >
- Vyplníme název nového projektu, vybereme možnost Portlet a klikneme na Next >
- Vybereme framework Liferay MVC, zvolíme “Create custom portlet class” a klikneme na Next >
- 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 >
- 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.
- Na závěr vybereme, jaké metody chceme automaticky vytvořit. K předvybraným
init
adoView
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.
- Pravým tlačítkem klikneme na nově vytvořený projekt, vybereme Liferay → SDK → all
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:
- 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/
- V Eclipse zvolíme File → Import → Liferay → Liferay Projects from Plugins SDK.
- Pro „Liferay Plugins SDK“ vybereme liferay-plugins-sdk-6.1.1
- V tabulce „Projects to import“ zvolíme KoleguvPortlet-portlet a stiskneme Finish
- Smažeme portlet z Liferay Plugins SDK:
rm -rf ~/bin/liferay/liferay-plugins-sdk-6.1.1/portlets/KoleguvPortlet-portlet
- 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.