jAPS 2.0 entando - Ant e jAPS mini-HOWTO

Do It The jAPS Way

William Ghelfi

Prima versione 
Chief Interaction Designer
Tzente 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-03-03

Diario delle Revisioni
Revisione 0.32011-03-03MEM

Revisione generale per il rilascio della 2.2.0

Revisione 0.22010-03-15MEM

Revisione generale per il rilascio della 2.0.10

Revisione 0.12009-04-22WG

Prima versione

Estratto

In questo documento saranno descritti nella maniera più concisa possibile, i target (per gli amici, e da ora in poi nell'ambito del documento, task) di Ant messi a punto dal team di sviluppo di jAPS 2.0 entando per lavorare al meglio e svolgere comodamente una serie di operazioni più o meno di routine.


Capitolo 1. Scopo del documento

Introduzione

In questo documento saranno descritti nella maniera più concisa possibile, i target (per gli amici, e da ora in poi nell'ambito del documento, task) di Ant messi a punto dal team di sviluppo di jAPS 2.0 entando per lavorare al meglio e svolgere comodamente una serie di operazioni più o meno di routine.

Per dettagli ed approfondimenti si rimanda alla lettura diretta dei sorgenti nei file build.xml, buildProperties.xml, e buildTasks.xml.

A chi si rivolge

Questo documento è rivolto a sviluppatori, sistemisti o semplici curiosi che vogliano scoprire le comodità che il pacchetto dei sorgenti del framework jAPS 2.0 entando, o di un portale istanziato a partire da esso, mette a disposizione attraverso l'utilizzo di Ant.

Prerequisiti

Per trarre il maggior profitto possibile dalla lettura di questo documento, è necessario avere esperienza di base nell'utilizzo di Ant, del framework jAPS 2.0 entando, e dei software ad essi correlati.

Resorse

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

Capitolo 2. Task e loro descrizione

Task e loro descrizione

Vediamo quindi quali sono i task per Ant a nostra disposizione. Per ciascuno viene fornita una breve descrizione ed un sintetico dettaglio delle operazioni svolte. Per semplicità, si ipotizzerà un progetto caricato dentro Eclipse (per l'esatta versione, riferirsi ad altri documenti), di nome miawebapp, e una installazione di Apache Tomcat in /opt/tomcat6.

Sarà inoltre utilizzata la formula dipende da per indicare i task che vengono chiamati in automatico da Ant prima di eseguire il task in questione, seguendo l'indicazione fornita dall'attributo depends nel codice di definizione del task in questione.

Task di utilità generica

Task di utilità generica

all

È il task di default.

Richiama altri task, nell'ordine:

  1. WAR build

  2. Test - init

  3. Test

clean

Ripulisce le directory di lavoro riportando il progetto allo stato iniziale.

Cancella il contenuto delle directory:

  • build/classes
  • build/miawebapp
  • build/temp

E i file:

  • WebContent/WEB-INF/lib/aps.jar
  • dist/miawebapp.war
init

Inizializza l'ambiente di lavoro sotto build.

Dipende da: clean.

Copia il contenuto di WebContent all'interno di build/miawebapp.

compile

Compila e predispone i sorgenti.

Dipende da: clean.

Copia i file aggiuntivi (.properties, .xml, etc.) da src dentro build/classes e compila i file .java presenti in src dentro build/classes.

undeploy

Cancella l'intera applicazione da Apache Tomcat.

Di fatto cancella la directory /opt/tomcat6/webapps/miawebapp.

Generate and include aps jar

Dipende da: compile.

Genera ed include nel posto giusto il jar del motore di jAPS 2.0 entando: aps.jar.

Il file aps.jar viene creato a partire dalle classi presenti in build/classes e copiato in WebContent/WEB-INF/lib/.

Dal processo sono escluse le classi di test.

Task per la gestione del WAR

Task per la gestione del WAR

WAR build

Genera il WAR

Dipende da: Generate and include aps jar, init.

All'interno di build/miawebapp predispone la corretta configurazione dei file WEB-INF/conf/systemParams.properties, WEB-INF/web.xml, WEB-INF/conf/oscache.properties, e a partire dal contenuto di build/miawebapp produce il miawebapp.war dentro dist.

WAR and WEBAPP undeploy

Cancella sia il WAR che l'intera applicazione da Tomcat.

Dipende da: undeploy.

Cancella /opt/tomcat6/webapps/miawebapp.war.

WAR deploy

Effettua il deploy del WAR.

Copia il file dist/miawebapp.war in /opt/tomcat6/webapps/.

Task per la gestione dei database

Task per la gestione dei database

PG db backup

Effettua il dump in formato TAR dei due database miawebappPort e miawebappServ.

Richiama la corretta linea di comando utilizzando il client pg_dump e salvando i file miawebappPort.backup e miawebappServ.backup in db/tar/.

PG db export

Effettua il dump in formato SQL dei due database miawebappPort e miawebappServ.

Richiama la corretta linea di comando utilizzando il client pg_dump e produce per ciascuno dei due database i due file contenenti rispettivamente lo schema (o struttura del database completa di comandi per la creazione delle tabelle) e i dati.

I file sono salvati dentro la directory db/export.

PG db restore

Effettua un restore dei due database a partire dal backup in formato TAR.

Richiama la corretta linea di comando utilizzando il client pg_restore e utilizzando come sorgente i file di backup miawebappPort.backup e miawebappServ.backup che si trovano dentro db/tar/.

PG db drop

Cancella i due database dal database server.

Richiama la corretta linea di comando utilizzando il client dropdb.

PG db create

Crea i due database vuoti sul database server.

Richiama la corretta linea di comando utilizzando il client createdb.

PG db full update

Effettua un aggiornamento completo dei due database sul database server.

Dipende da: PG db drop, PG db create, PG db restore.

L'aggiornamento avviene grazie alle dipendenze e prevede nell'ordine: la cancellazione dei database, la creazione di due nuovi database vuoti, e il restore a partire dai file di backup in formato TAR situati in db/tar/.

Task per gli Unit Test

Task per gli Unit Test

Test - clean

Ripulisce l'ambiente di test.

Cancella le directory:

  • build/test
  • build/classes/test

Cancella inoltre il contenuto della directory dist/test-results.

Test - init

Inizializza l'ambiente di test.

Dipende da: Test - clean, compile.

Crea le directory:

  • build/test
  • dist/test-results

Richiama il task PG db full update passandogli il parametro di configurazione test.marker con valore test di modo che non agisca sui database ordinari, bensì su quelli dedicati all'ambiente di testing: miawebappTestPort e miawebappTestServ.

I file si trovano in db/tar/Test/.

Test - PG db export SQL

Effettua un backup dei database di test in formato SQL.

Richiama il task PG db export SQL passandogli il parametro di configurazione test.marker con valore test di modo che non agisca sui database ordinari, bensì su quelli dedicati all'ambiente di testing: miawebappTestPort e miawebappTestServ.

I file sono salvati in db/export/Test/.

Test - PG db backup

Effettua un backup dei database di test in formato TAR.

Richiama il task PG db export SQL passandogli il parametro di configurazione test.marker con valore test di modo che non agisca sui database ordinari, bensì su quelli dedicati all'ambiente di testing: miawebappTestPort e miawebappTestServ.

I file sono salvati in db/tar/Test/.

Test

Effettua gli Unit Test con jUnit.

Esegue i test definiti in test.com.agiletec.aps.AllTests e test.com.agiletec.apsadmin.AllTests, e salva i report in dist/test-results.