Applicazione demo per l'utilizzo di apache camel.
L'applicazione legge i file con estensione csv dalla directory input
del server ftp.
I dati devono contenere i seguenti campi:
Nome | Descrizione |
---|---|
idPayment | L'id del pagamento |
name | Nome dell'autore del pagamento |
surname | Cognome dell'autore del pagamento |
processed | Se il pagamento è da processare o meno |
NB: non utilizzare l'intestazione nel csv.
I dati con processed
true verranno inviati su una coda kafka.
Gli altri verrano inseriti in un csv dentro la directory output
del server ftp.
Il consumatore che leggerà dalla coda inserirà questi dati nella tabella PAYMENT
del database.
In caso di idPayment
già presente verrà segnalato tramite log il problema.
In caso di altri errori (es: database non raggiungibile) verrà tentato l'inserimento dei dati per tre volte con un
delay di un secondo, altrimenti i pagamenti non processati vengono inseriti in un csv salvato sul filesystem.
Nel csv verrà indicata anche l'eccezione che ha scatenato l'errore.
Inoltre viene esposto un endpoint /payments
per ottenere i pagamenti salvati sul database.
docker-compose up -d
mvn spring-boot:run
mvn clean test
mvn camel-report:route-coverage