Entorn de desenvolupament LifeRay – MySQL sobre Lubuntu

LifeRay
Aquest mes de juny m’ha portat una interessant novetat: sembla que professionalment m’hauré de dedicar al manteniment d’un grup de portals muntats amb LifeRay, un sistema de gestió de continguts basat en tecnologia java.

Sempre que és possible m’agrada disposar d’un entorn de proves així que, dit i fet, he muntat el meu propi entorn al sobretaula Linux, per a poder fer  proves i experiments amb LifeRay sense riscos. Aprofitant l’avinentesa, escric aquest article que també em serveix per “documentar” el procés.

Programari emprat
He muntat l’entorn LifeRay sobre una distribució Lubuntu 12.10. Per proporcionar la base de dades he fet servir una MySQL 5.0, però no la versió dels repositoris d’Ubuntu, si no la que ve incorporada al XAMPP, d’Apache Friends, un paquet que incorpora un stack complet de serviddor MySQL, Servidor Web Apache i PHP. Per què he triat aquesta versió? La resposta és prosaica: essencialment, perquè ja el tenia instal·lat 😉

El primer de tot ha estat descarregar de la web de LifeRay el programari. A la feina farem servir la versió Enterprise de Liferay, amb llicència comercial, però també es disposa d’una versió LifeRay Community. La versió community pot ser útil precisament per a desenvolupadors o per a desplegaments de petits llocs.

En aquest enllaç podeu trobar les diferències entre les versións enterprise i community de LifeRay.

Val a dir que es disposa de força documentació al lloc de LifeRay. Hi ha disponible documentació prou interessant i útil servida, és d’agraïr, sota llicència Creative Commons. Per exemple,la User Guide.

La versió community de LifeRay va amb una llicència lliure. Descarrego, doncs , la versió community que va empaquetada amb Tomcat. També es poden trobar a la web altres  paquets de LIferay amb JBoss, Geronimo, Glassfish… però la de Tomcat té un avantage principal:El LifeRay IDE per a desenvolupar portlets i components per al portal és un Eclipse al que s’afegeix un plugin. El plugin incorpora el control del servidor Tomcat on es munta LifeRay. Per a d’altres tipus de servidors cal descarregar-se un plugin addicional. Trio la versió Tomcat per simplificar la instal·lació.

El LifeRay IDE també em demanará disposar del paquet de documentació javadoc, del codi font -útil per a depuració- i del plugins SDK, és dir, del framework java necessari per a desenvolupar portlets, templates o themes per a LifeRay.

En el meu cas he descarregat, doncs, aquests quatre paquets:

El plugins SDK: liferay-plugins-sdk-6.2-ce-ga2-20140319114139101.zip
El Javadoc: liferay-portal-doc-6.2-ce-ga2-20140321115737138.zip
El codi font: liferay-portal-src-6.2-ce-ga2-20140319114139101.zip
El paquet LifeRay-Tomcat: liferay-portal-tomcat-6.2-ce-ga2-20140319114139101.zip

Els passos a seguir són directes. No m’invento res, és el que està descrit a aquest enllaç de la Wiki de LifeRay.

1. Descomprimeixo el paquet de LifeRay-Tomcat i obtinc un servidor Apache Tomcat 7.0 amb el .war del CMS desplegat.

2. Engego el servidor anant a la carpeta bin i executant startup.sh

3. Per a poder controlar l’arrencada, a un terminal faig

tail -f catalina.out 

de la carpeta logs del Tomcat.

Base de dades MySQL
L’arrencada inicial resulta força lenta, si més no a la màquina que estic fent servir.

4. Aprofito per engegar el servidor de BD, en el meu cas, que faig servir XAMPP, ho faig amb un

sudo /opt/lampp/lampp startmysql

5. Creo la base de dades que farà servir LifeRay. lportal és el nom que fa servir per defecte. Suposant que tinc al PATH la ruta /opt/lampp/bin, aleshores faig:

mysql --user=root

i un cop dins,

create database lportal;

Finalment, quan el servidor ha arrencat, s’obre el Firefox apuntant a la pàgina http://localhost:8080

6. En aquesta pàgina hi configuro el compte inicial

2014-06-08-171247_1024x744_scrot

7. En aquest punt cal indicar que vull fer servir la base de dades MySQL. Faig click a Change i obtinc

2014-06-08-171302_1024x744_scrot

Indico que és una BD de tipus MySQL. El user per defecte de la BD de XAMPP és root, i sense password.
Finalment, procedeix a la instal·lació.

Al portatil de la feina la instal·lació ha portat el seu temps, però s’ha completat. Un cop els objectes de la BD han estat creats i la instal·lació completada el FireFox m’ha mostrat la pàgina d’instal·lació completada amb èxit. A continuació m’ha mostrat el formulari de d’acceptació de les condicions d’us, m’ha demanat que actualitzés el password i m’ha demanat la pregunta de seguretat per si se m’oblida el password.

En canvi, a casa, el procés m’ha donat alguns problemes de time out. Em temo que em caldrà actualitzar l’equip. La tàctica que m’ha funcionat ha estat, simplement, no carregar les dades de prova, ignorar el time out i esperar a que segons el log tomcat (tail -f catalina.out) s’hagués completat el procés.

Pantalla de benvinguda
Quan ha estat llest he obert manualment http://localhost:8080 i m’he trobat amb la pàgina de login. Ara la tinc així: he deixat només el portlet de sign-in

2014-06-08-204530_1024x744_scrot

Coses ràpides que es poden fer. Afegir-hi portlets. Per exemple, li he afegit el portlet del generador de contrasenyes. Click a afegir. Triar el portlet i col·locar-lo. És similar a com s’editen pàgines amb el SharePoint de MS. D’aquests components encastables a MS en diuen WebParts, aquí es fa servir el nom (més clàssic i més java-ish) de portlet.

2014-06-08-205223_1024x744_scrot

Això ens dona una idea de quina mena de tasques podem esperar trobar:

Desenvolupament, podrem crear i modificar llocs, pàgines, plantilles de pàgina, temes, estils i, per descomptat, portlets. Algunes d’aquestes activitats es desenvoluparan des de la mateixa interfície web de LifeRay, i d’altres, des del LifeRay IDE. Es podria arribar a donar el cas, extraordinari, d’intervenir directament sobre la base de dades.

Administració. Trobarem tasques com donar d’alta i baixa usuaris i grups, modificar-ne els permisos d’accés a pàgines i llocs.

Interfície amb altres sistemes. Segurament on es troba la major dificultat. Les grans corporacions tenen sistemes molt diversos i necessitats d’interconnexió variades. No és gens estrany que l’autenticació i autorització dels usuaris i els grups a diversos sistemes i entorns estigui gestionada des de, sovint, més d’un sistema. El single-sign-on és un dels més grans maldecaps amb que es pot trobar el departament TIC. No es tant una tasca de LifeRay com una tasca genèrica, a mig camí entre el desenvolupament, l’administració i la gestió.

Continguts. Queda en mans dels usuaris. Els usuaris, tanmateix, poden demanar suport i assistència a l’hora de pujar contingut al CMS.

Son les mateixes tasques que hom es troba amb altres CMS. Varia la tecnologia, però les tasques son similars.

LifeRay IDE
Per a poder fer els desenvolupaments descrits es pot fer servir el LifeRay IDE. Com he dit abans, es tracta d’un plugin per a Eclipse que permet engegar i aturar el servidor de LifeRay, fer-ne desplegament i desenvolupar portlets, templates, themes, hooks…

La versió mínima d’Eclipse és la 3.7 (Indigo). Des de la web de LifeRay es pot descarregar versions d’Eclipse amb el plugin pre-instal·lat. La darrera versió que es pot descarregar del lloc LifeRay és la Kepler.

A la pàgina de descàrrega es pot obtenir tant l’URL per a instal·lació del plugin des de l’eclipse, com el paquet zip amb plugin propiament dit, o la versió del Kepler amb el plugin pre-instal.lat:

2014-06-08-222821_1024x744_scrot

En engegar el Liferay IDE puc observar que es tracta d’un Eclipse adaptat.

Java EE - Eclipse _002

A destacar aquests tres botons:

Selecció_001

Els botons anteriors permeten accedir als wizards dels diferents projectes i desenvolupaments que és poden fer amb el LifeRay IDE.

Selecció_003

Selecció_007

I també configurar l’IDE per accedir a servidors LifeRay.

Selecció_008

Faré això últim:

Configurar LifeRay IDE

És molt senzill:

Al següent vídeo mostro com establir el Plugin SDK i, a continuació, com configurar un nou servidor de LifeRay. A tenir en compte: he deixat els zips de docs, src i liferay-tomcat bundle dins de la carpeta home de la emva instal·lació de Liferay, i també dins d’aquesta carpeta he descomprimit el zip de plugins. Això és necessari per a configurar, primer de tot, el plugins SDK, i a continuació, el nou server.

Des d’aquest moment ja puc engegar o aturar el meu servidor de LieRay des de l’Eclipse:

2014-06-09-010051_1024x744_scrot

Per a un proper post, la creació d’un porlet que pugui posar a les pàgines.