Skip to main content

Posts

Showing posts from 2018

Testing de bases de datos dinámicas

Testing de bases de datos dinámicas

Requerimientos:
ejbjmoordb jmoordbUnit Base de datos: MongoDB Muchas ocasiones deseamos hacer testing de las bases de datos sin afectar las de producción podemos utilizar el método repository.setDatabase(nombre-base-datos) para indicar la base de datos con la que deseamos hacer las pruebas, si no existe se creara en tiempo de ejecución. Debemos establecerlo en el método init()
rolRepository.

jmoordbUnit

Esta disponible la versiòn 0.4.3 de jmoordbunit, un framework especifico para hacer test para jmoordb en aplicaciones Java Enterprise Edition/Jakarta EE que utilizan bases de datos NoSQL (MongoDB).
https://avbravo.gitbooks.io/jmoordbunit/content/

Dependencias
<dependency><groupId>com.github.avbravo</groupId><artifactId>jmoordbunit</artifactId><version>0.4.3</version></dependency> Repositorio

<dependency><groupId>com.github.avbravo</groupId><artifactId>jmoordbunit</artifactId><version>0.4.3</version></dependency>
Su uso es muy básico

@Startup
@Singleton
@DependsOn("TestEnvironment")
@Test
@Report(path = "/home/avbravo/Descargas/")
public class BodegaTest {

    @Inject
    UnitTest unitTest;
    @Inject
    BodegaRepository bodegaRepository;

    @PostConstruct
    void init() {
        unitT

Jugando con Java Lambda/Stream

Jugando con Java Lambda/Stream
Java ofrece características interesantes

  List<Vehiculo> validos = temp.stream()
                        .filter(x -> isVehiculoValid(x)).collect(Collectors.toList()); 

 validos.forEach((v) -> {
                        Optional<Vehiculo> optional = vehiculoList.stream()
                                .filter(v2 -> v2.getIdvehiculo() == v.getIdvehiculo())
                                .findAny();
                        if (!optional.isPresent()) {
                            suggestions.add(v);
                        }
                    });


Si no usamos Java 8

                    for (Vehiculo v : validos) {
                        found = false;
                        for (Vehiculo v2 : vehiculoList) {
                            if (v.getIdvehiculo() == v2.getIdvehiculo()) {
                                found = true;
                            }

                        }
                        if (!found) {
          …

< p:schedule > con diálogos

Cuando deseamos usar un <p:schedule> con dialogos debemos usar <p:commandButton> y agregar un <b:growl> al dialogo, para que este no se cierre y se muestren los mensajes.
al dar clic en cualquier fecha



cuando se da clic en el botón editar y no hemos colocado los datos requeridos se muestra el growl con los mensajes.

Personalizar un componente usando con genéricos y ejbmoordb

Personalizar un componente   usando <p:autocomplete> con genricos y ejbmoordb

Cuando desarrollamos aplicaciones Java Enterprise Edition / Jakarta, podemos usar una combinación de frameworks si utilizamos Java Server Faces, (podemos mezclar Primefaces + Bootfaces +Omnifaces), podemos crear componentes que nos faciliten el trabajo con la aplicación.

Por ejemplo deseamos un <p:autocomplete> que personalizaremos e  integremos en múltiples formularios sin necesidad de reescribir el código, que realice búsquedas por cualquier atributo de una colección en mongodb mediante ejbmoordb.

en la carpeta
/resources/extensions creamos el componente autocompleterol



código del componente <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"       xmlns:f="http://java.sun.com/jsf…