Vai al contenuto

Setup Ambiente Sviluppo

Prerequisiti

Software Richiesto

Software Versione Note
Java JDK 8 (legacy modules), 11 (REST) Oracle o OpenJDK
Maven 3.6+ Build tool
PostgreSQL 12+ Database principale
MongoDB 4.4+ Solo per OtticoService
WildFly 18+ Application server
Node.js 18+ Per Quarkus dev mode
Git 2.30+ Version control

IDE

  • Consigliato: VSCode con workspace sgv-geco.code-workspace
  • Alternative: IntelliJ IDEA, Eclipse

Estensioni VSCode

# Esegui script setup
./vscode-setup/vscode-extension.sh

# O installa manualmente:
code --install-extension vscjava.vscode-java-pack
code --install-extension redhat.vscode-xml
code --install-extension vscjava.vscode-maven

Configurazione

1. Database Locale (Docker)

Il modo piu rapido per avviare il database e usare il setup Docker:

# Clone repository Docker (se non presente)
cd ~/vscode-projects
git clone <url-sgv2-docker> sgv2-docker

# Setup iniziale
cd sgv2-docker
cp sample.env .env
# Edita .env con le tue configurazioni

# Avvia database
make start

Oppure setup manuale PostgreSQL:

# Crea database
createdb sgv_dev

# Crea utenti
psql -d sgv_dev -c "CREATE USER own_generale WITH PASSWORD 'password';"
psql -d sgv_dev -c "CREATE USER own_c_a662 WITH PASSWORD 'password';"

# Importa schema (se disponibile dump)
psql -d sgv_dev < schema.sql

Endpoint locale tipico: jdbc:postgresql://localhost:5432/sgv_dev

2. Maven Settings

Configura ~/.m2/settings.xml con i profili necessari:

<settings>
  <profiles>
    <profile>
      <id>sgv-dev</id>
      <properties>
        <db.url>jdbc:postgresql://localhost:5432/sgv_dev</db.url>
        <db.user>own_c_a662</db.user>
      </properties>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>sgv-dev</activeProfile>
  </activeProfiles>
</settings>

3. WildFly

Per sviluppo locale, WildFly e gestito tramite Docker (sgv2-docker):

cd ~/vscode-projects/sgv2-docker
make start

Il container WildFly monta la directory deployments/ per hot-deploy dei WAR.

Per installazione manuale WildFly:

  1. Scarica WildFly 18+
  2. Configura datasource JNDI java:jboss/PostgresDSPoolGenerale
  3. Configura ApplicationRealm per autenticazione
  4. Configura moduli per driver PostgreSQL e MongoDB

4. Docker Development Environment

Vedi la guida Docker per la configurazione completa dell'ambiente Docker.

cd ~/vscode-projects/sgv2-docker
make start    # Avvia tutti i servizi
make stop     # Ferma i servizi
make help     # Lista comandi disponibili

Primo Build

cd ~/vscode-projects/sgv-ge.co

# 1. Build librerie core (obbligatorio prima di tutto)
cd MLib && mvn clean install && cd ..
cd EeMlib && mvn clean install && cd ..
cd MobileFineAdapterLib && mvn clean install && cd ..
cd OtticoServiceJPA && mvn clean install && cd ..
cd "REST Common" && mvn clean install && cd ..

# 2. Build applicazione principale
cd GeCo.Alfa && mvn clean package && cd ..

# 3. Verifica build riuscito
ls GeCo.Alfa/target/GeCo.Alfa.war

Verifica Ambiente

Dopo il setup, verifica che tutto funzioni:

Verifica Comando Risultato Atteso
Java 8 java -version 1.8.x
Java 11 /path/to/java11 -version 11.x
Maven mvn -version 3.6+
PostgreSQL psql -l Lista database
Docker docker ps Container attivi
MLib build cd MLib && mvn clean install BUILD SUCCESS

Troubleshooting

"Cannot find symbol" per classi MLib

Causa: MLib non installato nel Maven local repository.

cd MLib && mvn clean install

"Widgetset does not contain implementation"

Causa: Vaadin widgetset non compilato dopo modifica dipendenze.

cd GeCo.Alfa && mvn vaadin:compile

Errore connessione database

Causa: Database non avviato o credenziali errate.

# Verifica che Docker sia attivo
cd ~/vscode-projects/sgv2-docker && docker-compose ps

# Verifica connessione
psql -h localhost -U own_c_a662 -d sgv_dev

Conflitto porte

Causa: Porta gia in uso da altro servizio.

# Verifica porte occupate
lsof -i :8080
lsof -i :5432