Salve a tutti/e,
Entrando nel dettaglio, in aggiunta alle usuali opzioni di deployment basate su file .war e su Docker – che possono includere o meno la GUI – abbiamo ora la possibilità di sviluppare e lanciare un servizio basato su Portofino come applicazione Spring Boot. In questo scenario, non viene inclusa alcuna GUI, non serve Docker né un application server – è tutto contenuto in un singolo file .jar, quindi hai solo bisogno di avere Java installato.
Anche se ancora non c'è documentazione specifica per il deployment di microservizi con Portofino, abbiamo prodotto un archetipo Maven che si può utilizzare per creare una nuova applicazione, e un paio di microservizi di esempio (per i sottosistemi email e schedulatore Quartz) che puoi studiare nel codice sorgente di Portofino.
Come parte di questo sviluppo, abbiamo anche reso completamente opzionale la sicurezza con Shiro. Si può eseguire un'applicazione senza autenticazione/autorizzazione, per esempio se la metti in esercizio dietro un gateway per microservizi; oppure puoi implementare la security con altri strumenti (ad es. Spring Security).
Altre aggiunte e miglioramenti di rilievo includono:
- Supporto per la multi-tenancy in Hibernate.
- Liquibase aggiornato alla versione 4, altre librerie aggiornate per correggere vulnerabilità di sicurezza.
- L'URL per attivare il mail sender è cambiato, da /actions/mail-sender-run a /portofino-send-mail, e il metodo HTTP è cambiato da GET a POST.
- La action che invia le mail si può disabilitare con mail.sender.action.enabled=false.
- Ci siamo assicurati che sia possibile realizzare microservizi in puro Java senza Groovy, perdendo però la funzionalità di ricaricare a caldo le action modificate.
- Abbiamo ottimizzato i selection provider basati su chiavi esterne al salvataggio.
- Abbiamo ridotto i prerequisiti imposti dal CRUD alle entità persistenti, permettendo maggiori possibilità alle entità personalizzate.
- Abbiamo fissato l'endpoint per autenticazione e autorizzazione a /:auth. Ciò semplifica la vita ai nuovi client, ma è stato implementato in modo retrocompatibile così che i client esistenti non richiedono modifiche.