Programmer Power Runtime

close #10
I moduli installati nel repository di Programmer Power possono ora
(attraverso l'elemento library del file module.xml) riferirsi a librerie
(tipicamente di terze parti) installate al di fuori del repository
stesso.
Programmer Power Runtime

close #10
I moduli installati nel repository di Programmer Power possono ora
(attraverso l'elemento library del file module.xml) riferirsi a librerie
(tipicamente di terze parti) installate al di fuori del repository
stesso.
Merge branch 'transfer' of github.com:dscoppelletti/programmerpower
into transfer
Attempt to push after a "commit --amend".
Sistema di diagnostica

Nuovo sistema di diagnostica con integrazione con Apache log4j.
Programmer Power Core Libraries

close #11
close #14

 - Adottatto SLF4J come sistema di logging: il sistema di logging di
   Programmer Power e' stato reso obsoleto e potrebbe completamente
   rimosso nelle versioni future; allo stato dell'arte, per mantenere la
   compatibilita' con le versioni precedenti, il provider di default e'
   stato reimplementato per delegare l'emissione degli eventi di log
   alla libreria SLF4J.

 - Adottato Spring Framework come lightweight container.

 - Introdotta la classe **SharedDataDirectory** che implementa un
   direttorio dei dati condivisi tra tutte le applicazioni.

Anche per favorire l'utilizzo di Programmer Power o parti di esso da
terze parti, sono stati eseguite le seguenti semplificazioni:

 - La classe **ApplicationContext** e' stata resa obsoleta e potrebbe
   essere rimossa nelle versioni future: allo stato dell'arte, per
   mantenere la compatibilita' con le versioni precedenti, l'utilizzo
   dell'oggetto **ApplicationContext** e' considerato opzionale.

 - L'utilizzo dell'oggetto **ThreadContext** e' considerato opzionale.
Sistema di configurazione

close #12

Realizzato un sistema di configurazione basato su *gruppi di
configurazione* costituiti da *profili di configurazione* tra loro
mutuamente esclusivi all'interno del proprio gruppo; un profilo di
configurazione e' costituito dall'assegnazione del valore di alcune
proprieta'.

Il sistema di configurazione include un SPI per l'accesso ai gruppi ed
ai profili di configurazione: l'implementazione di default implementa
il sistema di configurazione con un unico file **config.xml** nel
direttorio **SharedDataDirectory**.
MySQL

close #19

Adottato MySQL come DBMS e Hibernate come implementazione JPA.
Componenti per la gestione della sicurezza

close #13
close #15

In seguito allo studio di JCA, implementata la classe **CryptoUtils**
per utilizzare i componenti di crittografia in base ai parametri
impostati su una collezione di proprieta' **Properties** e utilizzando
un modello SPI: questo approccio consente di mantenere il codice
sorgente delle procedure il piu' possibile indipendente dagli specifici
algoritmi di crittografia adottati.

Realizzati i programmi **Key Generator** e **Key Pair Generator** per
la generazione rispettivamente di chiavi di cifratura e di coppie di
chiavi per la crittografia asimmetrica.

Studio del protocollo SSL e implementazione dei componenti per il suo
utilizzo.

Sviluppati componenti per l'autenticazione.
JMX Configuration Agent

Realizzato agente JMX come implementazione alternativa del sistema di
configurazione: in questo modo non e' necessario che il file
**config.xml** sia accessibile da tutti gli utenti; e' invece
sufficiente che sia accessibile dall'utente che esegue l'agente.
Database Schema Updater

Realizzata procedura per inizializzazione o upgrade della struttura del
database; a questo scopo e' stato adottato Liquibase.
Apache Tomcat

close #17

Adottato Apache Tomcat come AS.
Realizzato class-loader per l'integrazione di Tomcat con il runtime di
Programmer Power.
Programmer Power IDE

close #18

Implementato supporto dei progetti per applicazioni Web dinamiche.
Programmer Power WUI

close #20

Realizzata infrastruttura per sviluppare applicazioni Web:

 - Adottato Struts 2 come framework MVC.

 - Adottato Spring Security come framework per la sicurezza.

 - Adottato Jasig CAS per il SSO.

 - Adottato Restlet come framework RESTfull.

 - Adottati jQuery e jQueryUI come framework JavaScript.

**Programmer Power WUI** e' un'applicazione Web che offre un'interfaccia
utente *a schede* per l'accesso alle funzioni pubblicate da altre
applicazioni Web installate nello stesso AS.
L'infrastruttura realizzata consente agli sviluppatori di concentrarsi
sulle sole funzioni specifiche delle applicazioni Web demandando tutti
gli aspetti comuni ai servizi offerti dalla piattaforma.

Come applicazione Web di esempio per collaudare l'infrastruttura e'
stata realizzata **Web Site Services**: un'applicazione che offre
alcuni servizi di utilita' per un sito Web.
Text Dumper

Allineato ad alcune delle modifiche dell'infrastruttura.
2FT Formatter

Allineato ad alcune delle modifiche dell'infrastruttura.

La proprieta' di sistema
**it.scoppelletti.programmerpower.text.SpecialCharacterConverter.config**
non e' piu' supportata: la configurazione della
*conversione dei caratteri speciali* deve sempre essere il file
**it-scoppelletti-textflat-specialCharacterConverter.xml** rilevabile
attraverso il class-path (nella versione precedente il nome del file era
**specialcharacterconverter.xml** che pero' si prestava a conflitti con
i nomi di file utilizzati da altri sistemi).
Site Builder

close #16

 - Introdotte la numerazione delle pagine e la numerazione delle
   sezioni.

 - Supporto della proprieta' **number** nella macro
   **MacroPageProperty**.

 - Nuove macro: **MacroPageNumber**, **MacroSectionNumber**,
   **MacroTableOfContents**.