jAPS 2.0 entando – Plugin Mail

Do It The jAPS Way

Eugenio Santoboni

Revisore 
AgileTec s.r.l.

William Ghelfi

Revisore 
Tzente s.r.l.

Elia Mezzano

Prima versione completa in Italiano 
AgileTec s.r.l.

Legal Notice

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix entitled "GNU Free Documentation License".

The copyright holders make no representation about the suitability of this Document for any purpose. It is provided “as is” without expressed or implied warranty. If you modify this Document in any way, identify your resulting Document as a variant of this Document.

2011-02-14

Revision History
Revision 1.82011-02-11MEM

Adattamento per la versione di jAPS 2.0 entando versione 2.2.0

Revision 1.72010-04-1MEM

Cambiamento dell'ordine dei capitoli

Revision 1.62010-03-16EM

Terza versione pubblica, aggiornata alla versione del plugin 1.2

Revision 1.52009-07-30EM

Seconda versione pubblica, aggiornata alla versione del plugin 1.1

Revision 1.42009-06-16EM

Prima versione pubblica

Revision 1.32009-05-04EM

Seconda versione interna

Revision 1.22009-04-09EM

Prima versione interna

Abstract

Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin Mail.


Chapter 1. Scopo del documento

Introduzione

Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin Mail.

A chi è destinato

Questo documento è destinato a chi intende conoscere le funzionalità del jAPS Plugin Mail, e sta prendendo in considerazione la eventuale integrazione in un Ambiente di Produzione già funzionante o nel proprio Ambiente di Sviluppo (Progetto in IDE Eclipse).

Il documento è indirizzato sia a Sistemisti (responsabili di installazioni di Applicazioni su base jAPS 2.0) che a Java Developers (con una conoscenza base del Framework jAPS 2.0 entando).

Prerequisiti

Per poter utilizzare efficacemente le informazioni contenute in questo documento, occorre un po' di esperienza su alcune tecnologie del web base: la piattaforma Java, gli strumenti di sviluppo Eclipse, il servlet engine Apache Tomcat, il database PostgreSQL, e del Framework jAPS 2.0. E' inoltre necessario aver letto il documento jAPS 2.0 - Plugin Pattern.

Riferimenti

Ulteriori informazioni possono essere richieste attraverso la mailing list ufficiale Google Group "japs-platform".

Per mandare un messaggio ai membri della lista, invia una mail a .

È inoltre possibile consultare la documentazione presente in:

jAPS 2.0 entando Project - Sito per gli sviluppatori

Chapter 2.  Caratteristiche del Plugin Mail

Il Plugin Mail fornisce le funzionalità di base per l'invio di eMail in testo semplice e/o html, con o senza allegati. Tale servizio è la base per tutti i plugin che richiedono l'invio di eMail.

Il plugin è strutturato in maniera da essere inserito in una istanza di jAPS senza intaccarne il core.

Table 2.1. Riassunto delle caratteristiche

CodiceNomeTipoVersione del PluginVersione di jAPS 2.0 entando
jpmailMailPurePlugin1.32.2.0 -
jpmailMailPurePlugin1.22.0.10
jpmailMailPurePlugin1.12.0.6 - 2.0.8
jpmailMailPurePlugin1.02.0.2

Caratteristiche del Plugin Mail

Funzionalità

Il Plugin Mail fornisce la funzionalità di invio eMail da uno dei mittenti configurati nel servizio.

Lo scopo principale del plugin è fornire delle funzioni generali a servizio di implementazioni particolari; le funzionalità esposte sono a servizio esclusivo di altri moduli plugin che necessitano, per il loro funzionamento, della spedizione di eMail; es: moduli di Registrazione Utenti, Moduli Newsletter, ecc.

Le interfacce esposte dal servizio consentono la personalizzazione, da parte dei Plugin utilizzatori, dei seguenti campi della mail:

  • mittente (uno tra i mittenti configurati nel servizio)

  • oggetto

  • testo

  • destinatario (anche in CC e BCC)

  • contenuto (in testo semplice, html o misto, con o senza allegati)

Il modulo presenta una interfaccia del Back-End tramite la quale un utente superuser può configurare il servizio. Tale interfaccia aderisce perfettamente alla grafica ed impostazione del Back-End ed è accessibile attraverso una voce del menù Plugins. Tale interfaccia consente di configurare, separatamente, il server smtp e i gli indirizzi dei mittenti del sistema.

Interfaccia di Back-End

Il plugin fornisce una interfaccia di Back-End, accessibile dalla voce di menù Plugin, sottomenù Gestione eMail. La voce di menù presenta due sottomenù, uno che conduce all'interfaccia per la configurazione del server Smtp, un altro che conduce all'interfaccia per la configurazione dei mittenti delle mail.

Chapter 3. Installazione e Integrazione del Plugin

Installazione e Integrazione di jpmail

Caratteristiche tecniche

Il plugin ha la caratteristica di PurePlugin, la sua installazione non modifica nessuna funzionalità presente nel sistema.

Descrizione del Pacchetto

Il pacchetto del Plugin contiene l'insieme delle directory (directory doc ed src più il file Readme ) definite nel documento di descrizione generale chiamato jAPS2.0 - Plugin Pattern .

In particolare, la directory src è strutturata come di seguito descritto:

  • Directory java. Contiene le sorgenti java complete e i test jUnit del Plugin.

  • Directory sql. Contiene gli script da eseguire nei db Port e Serv principali e di test.

  • Directory webapp . La directory contiene tutti i file necessari alla webapp. In particolare, la directory contiene i file (jsp) relativi alla interfacce utente ed i file di configurazione delle stesse, i file di definizione dei bean a servizio (sia del layer di Business del Modello di jAPS 2.0, che nelle action di Struts 2 relative al Layer di Presentation), le librerie (compresa la libreria ricavata dalle sorgenti java date in dotazione), le risorse statiche necessarie (css, immagini, e js).

Integrazione in Ambiente di Produzione

Di seguito individueremo con mioportale il nome della Web Application in ambiente di produzione in cui installeremo il plugin.

Per eseguire l'installazione in una applicazione Web in produzione basata sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin, i passi da eseguire sono i seguenti:

Note

Le precedenti attività sono da eseguire nell'applicazione a freddo , successivamente all'arresto del container.

  • Copiare il contenuto della directory src/webapp/WEB-INF/lib del pacchetto dato in dotazione, all'interno della directory mioportale /WEB-INF/lib/ in produzione.

  • Copiare il contenuto della directory src/webapp/WEB-INF/plugins del pacchetto dato in dotazione, all'interno della directory mioportale /WEB-INF/plugins/ in produzione. Creare la directory plugins se non è presente.

  • Copiare il contenuto della directory src/webapp/resources/plugins del pacchetto dato in dotazione, all'interno della directory mioportale /resources/plugins/ in produzione.

  • Eseguire i task contenuti nel file portScript.sql (contenuto nella directory src/sql del pacchetto dato in dotazione) nel db port in produzione.

  • Lo script è strutturato ipotizzando il version production (variare se il version dell'ambiente di produzione è diverso). Modificare la configurazione del server smtp e degli indirizzi dei mittenti secondo le necessità.

Installazione in Ambiente di Sviluppo

Di seguito individueremo con mioprogetto il nome del progetto Eclipse in cui installeremo il plugin.

Per eseguire l'installazione in un progetto Eclipse basato sulla versione di jAPS 2.0 entando dichiarata compatibile con il plugin, i passi da eseguire sono i seguenti:

  • Copiare il contenuto della directory src/webapp/WEB-INF/lib del pacchetto dato in dotazione, all'interno della directory mioprogetto /WebContent/WEB-INF/lib/ , con l'esclusione del file jAPSPlugin-jpmail-1.1.jar .

  • Copiare il contenuto della directory src/webapp/WEB-INF/plugins del pacchetto dato in dotazione, all'interno della directory mioprogetto /WebContent/WEB-INF/plugins/ . Creare la directory plugins se non è presente.

  • Copiare il contenuto della directory src/webapp/resources/plugins del pacchetto dato in dotazione, all'interno della directory mioprogetto /WebContent/resources/plugins/ .

  • Eseguire i task contenuti nel file portScript.sql (contenuto nella directory src/sql del pacchetto dato in dotazione) nel proprio db port . Lo script è strutturato ipotizzando il version production (variare se il version dell'ambiente di produzione è diverso). Modificare la configurazione del server smtp e degli indirizzi dei mittenti secondo le necessità.

  • Eseguire i task contenuti nel file portTestScript.sql (contenuto nella directory src/sql del pacchetto dato in dotazione) nel proprio db port di test.

  • Copiare il contenuto della directory src/java/main/com nella directory mioprogetto /src/com del proprio progetto.

  • Copiare il contenuto della directory src/java/test/test nella directory mioprogetto /src/test del proprio progetto.

  • Copiare nella directory mioprogetto /src/ del proprio progetto il file contenuto della directory src/java/main di nome jpmail_japs-struts-plugin.xml . Nel caso che nella directory src del progetto Eclipse sia già presente un file di nome japs-struts-plugin.xml , copiare il contenuto del tag <struts> del file jpmail_japs-struts-plugin.xml all'interno del file japs-struts-plugin.xml esistente e cancellare il file jpmail_japs-struts-plugin.xml . Nel caso che nella directory src del progetto Eclipse non sia presente un file di nome japs-struts-plugin.xml , rinominare il file jpmail_japs-struts-plugin.xml in japs-struts-plugin.xml .

  • Per verificare il corretto invio delle mail nei test di jUnit, modificare la costante MAIL_ADDRESSES della classe JpmailTestHelper.java nel package test.com.agiletec.plugins.jpmail.util .

Una volta eseguiti i passi sopra descritti, far partire il progetto da Eclipse e verificare la presenza della voce specifica voce di menù nell'area di amministrazione del progetto.

Chapter 4. Plugin configuration

Configurazione del Plugin Mail

Il plugin necessita di una configurazione XML iniziale, inserita nel db Port dell'istanza di jAPS 2.0, dove sono inseriti tutti i parametri sistemistici (host, username, password etc) il flag per il debug e una serie di mittenti individuati da un codice univoco.

È preferibile modificare i parametri di default direttamente dall'interfaccia di anministrazione.

Di seguito un esempio della configurazione necessaria:

<mailConfig>
  <senders>
    <sender code="CODE1">EMAIL1@EMAIL.COM</sender>
    <sender code="CODE2">EMAIL2@EMAIL.COM</sender>
  </senders>
  <smtp debug="true" >
    <host>out.virgilio.it</host>
    <user></user>
    <password></password>
    <security>tls</security> <!-- tls, ssl, std (l'ultima per l'smtp standard)-->
  </smtp>
</mailConfig>
	

Tutti questi elementi sono obbligatori tranne l'attributo debug che, nel caso non sia presente, varrà impostato a false.