fdelprete edited this page Dec 30, 2014 · 5 revisions

Ambito

Progetto di migrazione di un portale costruito con la tecnologia xPages di IBM Lotus Domino ad un portale basato su Liferay.

Requisiti

I documenti gestiti sulla piattaforma Lotus Domino devono essere migrati su Liferay.

Occorre importare nella libreria standard Documents And Media di Liferay una serie di documenti di vario tipo (pdf, file di office, immagini, filmati, ecc) gestiti all'interno di database Lotus Notes.

I documenti sono molto numerosi e inoltre contengono alcuni metadata che si vogliono conservare (descrizioni, titoli, tags, categorie, ecc.)

Soluzione proposta

Vista la mole di documenti da importare si è deciso di adottare una procedura asincrona.

Nella recente versione di Liferay 6.2 si ha a disposizione il nuovo framework del BackgroundTask costruito sulle solide basi del Enterprise Message Bus di Liferay. Rispetto ad altre soluzioni (Quartz scheduler, messaggi sul ESB) questa offre a possibilità di monitorare lo stato di avanzamento del task in esecuzione.

Si svilupperà quindi una portlet sul control panel che consente la configurazione del task di importazione e il lancio della sua esecuzione, nonché il suo monitoraggio.

Macro step

  1. Si definiscono i parametri di configurazione del task di importazione (accesso al server Domino, database Notes, vista che seleziona i documenti da importare, campo di tipo Notes Rich Text contenente gli allegati che si dovranno importare, ecc).

  2. Si invoca la creazione di un BackgroundTask passando i parametri da utilizzare per l'importazione e la classe che implementa il codice di importazione.

  3. Il metodo execute di NotesAttachmentTaskExecutor.class contiene il codice che verrà eseguito per importare i documenti.

  4. Ad ogni documento importato vengono aggiornati alcuni contatori all'interno di un'apposita bean che viene poi inviata come messaggio alla destinazione BACKGROUND_TASK_STATUS

  5. In questo modo è possibile monitorare lo stato di avanzamento del task di importazione mostrandolo sull'interfaccia utente.

La pagina principale della portlet: view.jsp

[Descrizione della pagina view.jsp](La pagina view.jsp)

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.