5.5 KiB
5.5 KiB
Porting VLabs Display Portlet (Liferay 6.2 → 7.4)
Obiettivo e Stato
- Obiettivo: portare la portlet “Virtual Labs Display” da Liferay 6.2 a Liferay 7.4 mantenendo funzionalità e UI.
- Esito: funzionalità e UI paritarie. La portlet 7.4 espone le stesse 9 voci configurabili (Icon URL, Title, DocumentId, URL), calcola access policy e URL friendly del VRE in base alla membership utente, e visualizza contenuto dei JournalArticle con sommario e “Read More”.
Funzionalità chiave (paritarie)
- Configurazione per 9 VLabs: per ogni voce si gestiscono Icon URL, Title, DocumentId, URL del VRE.
- Calcolo membership VRE e friendly URL: via utilità Utils.java.
- Contenuti CMS: lettura del contenuto del JournalArticle per il groupId corrente e docId configurato.
- UI: titolo con icona, badge access policy (open/restricted/private) e sommario con toggle “Read More”.
Differenze tecniche principali
- Registrazione portlet:
- 6.2: MVCPortlet senza logica in classe; configurazione in liferay-portlet.xml e portlet.xml.
- 7.4: componente OSGi VLabsDisplay.java con proprietà; XML mantenuti per compatibilità (CSS/JS e wrapper class).
- API Journal:
- 6.2: com.liferay.portlet.journal.* in JSP init.jsp.
- 7.4: com.liferay.journal.* in JSP init.jsp.
- Generazione id “Read More”:
- 6.2: id randomizzati per evitare collisioni tra istanze (in-page).
- 7.4: allineato con prefisso random + indice in view.jsp.
- Helper contenuti:
- 6.2: la JSP legge direttamente i contenuti dal JournalArticle.
- 7.4: mantenuto lo stesso approccio; l’istanza di helper non iniettata è stata rimossa da VLabsDisplay per evitare codice morto e incoerente con OSGi.
Mappatura preferenze (6.2 ↔ 7.4)
- icondocURL, icondocURLWidthPx
- vlabNameN-Icon, vlabNameN-Title, vlabNameN-DocumentId (N = 1..9)
- vlabN-Url (N = 1..9)
- Le chiavi sono invariate, non è necessaria migrazione delle preferences.
File principali
- Classe portlet: VLabsDisplay.java
- Azione di configurazione: VLabsDisplayConfigurationAction.java
- Utilità membership/URL: Utils.java
- JSP:
- View: view.jsp
- Config: config.jsp
- Init: init.jsp
- Risorse:
- CSS: main.css
- JS: main.js
- Icone access policy: images
- Descriptor:
- liferay-portlet.xml
- portlet.xml
- bnd.bnd
- build.gradle
Build e Requisiti
- Dipendenze: Liferay release.dxp.api, portal-manager-core, portal-usermanagement-core, JSTL.