portal-vlabs-display-portlet/porting.md

5.5 KiB
Raw Permalink Blame History

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.