viernes, 29 de diciembre de 2017

Ejemplos de Microservicios con Java

  No hay comentarios.
Recuerdo un tiempo que  la gente (nivel usuario) pensaba que una computadora era siempre Windows + Office, hasta lo llamaban "Microsoft":
- ¿Tu compu tiene Microsoft ?
- ¿Office o Windows?
- Microsoft XP .

La gente pensaba así por default.

Y algo así lo estoy viendo ahora con esta nueva tecnología llamada Microservicios: Solo se hace con SpringBoot.

Pues bien, en este post mostraré  tres (03) frameworks en Java que permiten hacer Microservicios, sin usar SpringBoot.

miércoles, 27 de diciembre de 2017

Java EE 8: Bean Validation

  No hay comentarios.
En Java EE 8, el api Bean Validation ha venido con mejoras.
Por ejemplo, ahora podemos validar un campo de tipo java.time.LocalDate

    @Past
    private LocalDate fechaIngreso;



También, determinar los límites de una lista:

    @NotEmpty
    private List<@Size(min = 1, max = 15) String> proyectos;



Al igual que un nuevo tipo de validación (y así evitar log RegEx)

    @Email
    private String email;



Podemos evaluar los campos validados desde el mismo Java (aquí un ejemplo desde una prueba unitaria):

    @Test
    public void testMemberWithNoValues() {
        Empleado e = new Empleado();
        e.setEmail("abc@");
        e.setDni("12345678");
        e.setProyectos(Arrays.asList("Proyecto 1", "Proy2", "Proy3"));

        // validate the input
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        Set<ConstraintViolation<Empleado>> vs = validator.validate(e);
        vs.forEach((v) -> {
            System.out.println("--->" + v.getPropertyPath() + ":" + v.getMessage());
        });
    }



Ahora bien, este mismo Bean con validación puede ser usado dentro de un JSF:

    <h:body>
        <h:form>
            <h:outputLabel for="nombre" value="Nombre"/>
            <h:inputText id="nombre" value="#{formBean.empleado.nombre}" /><br/>
            <h:outputLabel for="email" value="Email"/>
            <h:inputText id="email" value="#{formBean.empleado.email}" /><br/>
            <h:outputLabel for="dni" value="DNI"/>
            <h:inputText id="dni" value="#{formBean.empleado.dni}" /><br/>

            <br/>
            <h:commandButton value="Enviar" />
        </h:form>
    </h:body>



Código fuente

Puedes ver este ejemplo en acción con este código fuente completo:
https://bitbucket.org/apuntesdejava/novedades-javaee-8/src/master/bean-validation/?at=master