Wrex es mi intento de generar un proyecto base de java (un arquetipo vamos) que permita tener el entorno listo y funcionando en minutos, no en horas. Partiendo con una base de datos MySQL vacía se puede tener una aplicación corriendo en apenas unos minutos.
Stack
Spring 5
Primefaces 6.2 + PF Extensions
Spring Data + Hibernate 5
Spring Security
Junit
H2
MySQL 8
Liquibase
Dozer Mapper
Que incluye
- Proyecto Backend con las entidades, repositorios e implementación de la api. Incluye JUnit configurados con una base de datos en memoria H2 como también Junit de integración contra la BBDD Mysql.
- Proyecto API, con interfaces y DTOs
- Proyecto Frontend, con la vista y la capa de seguridad.
- Jetty ready. Tambien despliega sin problemas en Tomcat 8.5
Lo bueno
- Sistema de registro, login, y envio de correo de reseteo de password
- Registro y login con Facebook
- ClusterMarker para Gmaps con PF.
- Reescalado de imágenes con Scalr.
- Subida de ficheros con PF.
- Liquibase para versionar cambios en la BBDD.
- Uso de Maven SQL para limpiar la bbdd local.
- Encriptación básica de la contraseña.
- Envío asíncrono de correos
- Ejemplos de cron con Spring.
- Uso de Prettyfaces para URLS permanentes y reescritura de URL
- Iconos Fontawsome
- EhCache para hibernate como cache segundo nivel
- Multiidioma
- Algunas cosas más
Lo Feo
No tiene ningún tipo de diseño o layout. Solo una disposición básica de cabecera, cuerpo y pie con ui:composition.
Lo Malo
Los Pom están algo desordenados. No está pensado para aplicaciones "serias". Falta de documentación y algunos ejemplos (con lightbox y gmap), se debe indagar un poco en los proyectos.
Si quereis echarle un vistazo se puede clonar de Github https://github.com/konum/wrex. En la wiki están los pasos necesarios para levantarlo.
Voy a estar trabajando en esto con algunas ideas nuevas (lo he retomado hoy después de dos años), por lo que se aceptan ideas y críticas.