Vai al contenuto

Moduli del Sistema

Panoramica

SGV GE.CO è composto da 14 moduli Maven indipendenti. Non esiste un pom.xml root; ogni modulo è un progetto Maven a sé stante, collegato tramite dipendenze nel Maven local repository (~/.m2/repository).

Grafo delle Dipendenze

graph TD
    MLIB["MLib<br/>(JAR - Core Library)"]
    EEMLIB["EeMlib<br/>(JAR - JDBC Helper)"]
    MFALIB["MobileFineAdapterLib<br/>(JAR - Mobile DTOs)"]
    OTTJPA["OtticoServiceJPA<br/>(JAR - Ottico JPA)"]
    RESTC["REST Common<br/>(JAR - Shared Entities)"]

    GECO["GeCo.Alfa<br/>(WAR - Main UI)"]
    GECOS["GecoService<br/>(WAR - Service Layer)"]
    ELAB["ElaborazioneService<br/>(WAR - Doc Processing)"]
    CONN["ConnessioneService<br/>(WAR - PA Gateway)"]
    OTT["OtticoService<br/>(WAR - Optical)"]
    VPN["VpnMctcService<br/>(WAR - MCTC VPN)"]
    MFA["MobileFineAdapterServer<br/>(WAR - Spring Boot)"]
    MFAEAR["MobileFineAdapterServerEar<br/>(EAR)"]
    REST["REST<br/>(Quarkus JAR)"]

    MLIB --> GECO
    MLIB --> GECOS
    MLIB --> ELAB
    MLIB --> CONN
    MLIB --> OTT
    EEMLIB --> MFA
    EEMLIB --> ELAB
    MFALIB --> MFA
    MFALIB --> ELAB
    OTTJPA --> OTT
    RESTC --> REST
    MFA --> MFAEAR

    style MLIB fill:#4CAF50,color:#fff
    style EEMLIB fill:#4CAF50,color:#fff
    style MFALIB fill:#4CAF50,color:#fff
    style OTTJPA fill:#4CAF50,color:#fff
    style RESTC fill:#4CAF50,color:#fff
    style GECO fill:#2196F3,color:#fff
    style GECOS fill:#2196F3,color:#fff
    style ELAB fill:#2196F3,color:#fff
    style CONN fill:#2196F3,color:#fff
    style OTT fill:#2196F3,color:#fff
    style VPN fill:#2196F3,color:#fff
    style MFA fill:#FF9800,color:#fff
    style MFAEAR fill:#9C27B0,color:#fff
    style REST fill:#F44336,color:#fff

Legenda: Verde = JAR Library | Blu = WAR (WildFly) | Arancione = Spring Boot WAR | Viola = EAR | Rosso = Quarkus

Catalogo Moduli

Librerie (JAR) - da installare con mvn install

Modulo GroupId ArtifactId Versione Java Scopo
MLib MLib MLib 0.0.1-SNAPSHOT 1.8 Core library: 239 entita JPA, PDF (iText ⅝), documenti (POI, ODF), barcode (ZXing), crypto (BouncyCastle), logging (MLogger2)
EeMlib EeMlib EeMlib 0.0.1-SNAPSHOT 1.8 Helper JDBC leggero: JNDI lookup, DbConn, QueryHelper
MobileFineAdapterLib MobileFineAdapter MobileFineAdapter.lib 0.0.1 1.8 DTO condivisi per sistema mobile (*Pj POJOs, PjsResponse*)
OtticoServiceJPA it.soes.otticoservice ottico-jpa 1.0.0 1.8 Entita JPA per OtticoService (MongoDB)
REST Common it.soes.sgv2 rest-common 1.0.0 11 Entita JPA condivise per Quarkus REST

Applicazioni (WAR/EAR) - da pacchettizzare con mvn package

Modulo ArtifactId Java Framework Porta Scopo
GeCo.Alfa GeCo.Alfa 1.8 Vaadin 7.7.27, Spring Security 3.2 8080 UI principale operatore (MVP pattern)
GecoService GecoService 1.8 Vaadin 7.7.27, RESTEasy 3.6.1 8080 Service layer per GeCo.Alfa
ElaborazioneService ElaborazioneService 1.8 RESTEasy 4.7.7, Quartz 2.2.1, CXF 3.4.5 8080 Elaborazione documenti, PDF, batch
ConnessioneService ConnessioneService 1.8 JAX-RS, RESTEasy 4.7.7 8080 Gateway integrazioni PA
OtticoService OtticoService 1.8 JMS MDB, MongoDB 3.12.14 8081 Documenti scansionati (autovelox)
VpnMctcService VpnMctcService 1.8 JAX-WS EJB 8084 FTP over VPN verso MCTC
MobileFineAdapterServer MobileFineAdapter.server 1.8 Spring Boot 1.5.8 8083 API REST per tablet agenti
MobileFineAdapterServerEar MobileFineAdapter.server-ear 1.8 EAR wrapper - Packaging EAR
REST rest 11 Quarkus 2.16.5, Hibernate ORM 8082 API REST next-gen multi-tenant

Ordine di Build

Le librerie JAR devono essere installate prima dei moduli applicativi che le usano:

# 1. Librerie core (nessuna dipendenza interna)
cd MLib && mvn clean install
cd EeMlib && mvn clean install
cd MobileFineAdapterLib && mvn clean install
cd OtticoServiceJPA && mvn clean install
cd "REST Common" && mvn clean install

# 2. Applicazioni WAR (dipendono dalle librerie sopra)
cd GeCo.Alfa && mvn clean package
cd GecoService && mvn clean package
cd ElaborazioneService && mvn clean package
cd ConnessioneService && mvn clean package
cd OtticoService && mvn clean package
cd VpnMctcService && mvn clean package

# 3. Spring Boot
cd MobileFineAdapterServer && mvn clean package
cd MobileFineAdapterServerEar && mvn clean package

# 4. Quarkus (Java 11)
cd REST && ./mvnw compile quarkus:dev

Dipendenze Chiave per Modulo

MLib (Core Library)

Dipendenza Versione Uso
EclipseLink 2.5.1 JPA Provider (persistence unit GeCo.All)
iText 5.5.13.4 + 8.0.5 Generazione PDF (legacy + nuovo)
Apache POI 3.13 Excel/Word handling
PDFBox 2.0.0 Manipolazione PDF
ZXing 3.2.1 Generazione barcode
BouncyCastle 1.78.1 Crittografia, firma digitale
Apache CXF 3.1.12 SOAP/WebServices client
JJWT 0.9.1 Token JWT

GeCo.Alfa (Main UI)

Dipendenza Versione Uso
Vaadin 7.7.27 UI framework MVP
Spring Security 3.2.8 Autenticazione/autorizzazione
JasperReports 6.17.0 Report generation
Vaadin Charts 3.3.1 Grafici dashboard

ElaborazioneService

Dipendenza Versione Uso
Quartz 2.2.1 Job scheduling
iText 5.5.13.4 + 8.0.5 PDF generation
Tika 1.21 Document parsing
Spring 5.3.20 Core/Context/Web

REST (Quarkus)

Dipendenza Versione Uso
Quarkus 2.16.5 Runtime framework
Hibernate ORM (Quarkus managed) JPA con multi-tenancy
SmallRye OpenAPI (Quarkus managed) Generazione API spec