Skip to main content

Posts

Showing posts from 2021

Java Champions

 Este día recibí con mucha complacencia y para mi es un gran honor formar parte de los java Champions,   @Java_Champions Mi nueva cuenta de Twitter es:  @aristidesvbravo Quiero agradecer a los miembros de la comunidad Java por el gran honor que me han dado. En este camino en la comunidad Java. También a muchos amigos que han compartido durante muchos años este camino. La comunidad Java es una gran comunidad de muchas oportunidades, y conversaba con un gran amigo en la tarde de hoy sobre como involucrarse en la comunidad y como podemos hacer contribuciones al ecosistema de Java y sobre todo a las comunidades. Podemos empezar por pasos pequeños:  Escribir sobre lo que sabemos , lo que nos gusta, ayudando a otros desarrolladores, compartiendo con ellos y aprendiendo cada día más de personas con un alto conocimiento, y siempre dispuestas a ayudarnos. En lo personal el desarrollo de plugins para NetBeans sigue siendo una de mis principales actividades. Crear Apis y Frameworks nos hace aplic

Jakarta Server Faces

 Jakarta Server Faces es una excelente especificación que nos ofrece una forma fácil de crear aplicaciones Web, con grandess bibliotecas que puedes utilizar como lo son: Omnifaces: Liberia de utilidades Primefaces: La mejor librería de componentes visuales para JSF. Otra de las ventajas es que nosotros podemos crear nuestras propias bibliotecas de componentes y personalizar las aplicaciones a nuestra comodidad. En mi caso he ido personalizando una biblioteca llamada jmoordbjsf , la cual esta optimizada para ser usada con jmoordb (APi para MongoDB), con jmoordbutils (Libreria de utilidades). Aqui mostramos un enlace a las diferentes bibliotecas https://avbravo.github.io/ Pronto estaremos descrbiendo paso a paso la creación de una aplicación con Microprofile con MongoDB y Jakarta Server Faces (Primefaces + jmoordbjsf)

jmoordb 2.3 soporte para shell de MongoDB

 Se ha incluido en la versión 2.3 de Jmoordb el soporte para ejecutar instrucciones de consultas y agregaciones que se ejecutan en MongoDB directamente en jmoordb. Con lo cual sera más facial expresar instrucciones de MongoDB. En el siguiente enlace he detallado un ejemplo de su utilización, con un $elemMatch  https://avbravo-2.gitbook.io/jmoordb/capitulo-4/introduccion-cap4/shell  <dependency>             <groupId>com.github.avbravo</groupId>             <artifactId>jmoordb</artifactId>             <version>2.3</version>         </dependency> <repositories>         <repository>             <id>jitpack.io</id>             <url>https://jitpack.io</url>         </repository>     </repositories>

Usando LazyDataModel con Jmoordb y Microprofile

 Usando LazyDataModel con Jmoordb y Microprofile Lazy es una característica muy interesante que nos permite mostrar solo unos registros en lugar de todos por ejemplo en un DataTable. Esto reduce el tiempo de espera y disminuye el consumo de recursos para desplegar los.  Un escenario puede ser donde tenemos 20000 registros y queremos mostrarlos en un datatable en la cual solo mostraremos 25 por pagina, no seria adecuado cargar los 20000 registros al mismo tiempo. Para ello podemos utilizar LazyDataModel. Para usarlo agregar un objeto LazyDataModel con los métodos set/get: private LazyDataModel<Colegio> lazyDataModelColegio; //set/get En el método init Instanciar el objeto lazyDataModelColegio y en el método load() haremos las implementaciones. El offset es el desplazamiento entre las paginas, sortBy tiene información sobre la ordenación y filterBy información sobre el filtro entre las columnas.  En nuestro caso usaremos la clase paginator de jmoordb para gestionar varias accion

MicroProfile Rest Client con Jmoordb

MicroProfile Rest Client con Jmoordb Crear microservicios con Microprofile es realmente fácil.  en esta ocasión mostrare una aplicación simple que utiliza MongoDB como base de datos y Jmoordb. Creamos un proyecto Web con Maven y con PayaraMicro.  (En mi caso utilizo Apache NetBeans) Editar el archivo pom.xml Agregar el repositorio    <repositories>         <repository>      <id>jitpack.io</id>      <url>https://jitpack.io</url>     </repository>     </repositories> Agregar las dependencias <dependency>             <groupId>com.github.avbravo</groupId>             <artifactId>jmoordb</artifactId>             <version>1.9</version>         </dependency>          <dependency>             <groupId>com.github.avbravo</groupId>             <artifactId>jmoordbutils</artifactId>             <version>1.39</version>         </dependency>

Video de uso de componente paginator personalizado

 En el post anterior mostré como crear un componente paginator personalizado para Java Server Faces.  La idea es entender como crearlo. Una vez creado lo empaquete en las librerías jmoordbjsf y jmoordbutils. Que se agregan al proyecto La vista de la aplicación es similar a la imagen siguiente: En las paginas Java Server Faces, desabilitamos paginator del componente <p:dataTable de primefaces. Agregamos un <f:facet name="header" y colocamos el componente <jmoordbjsf:paginatorx> pasando los atributos el controller y el objeto paginator. También incluimos un <h:facet name="footer"> y colocamos el componente <jmoordbjsf:paginatorxfooter>,  En esta aplicación usamos Microprofile, JakartaEE , Jmoordb y MongoDB ejecutandose con PayaraMicro En el Controller implementamos IPaginator, agregamos un objeto Paginator con sus métodos set/get Aplicamos varios filtros. en Jmoordb hemos implementado métodos para hacer consultas a MongoDB mediante querys que s

Creando un paginator para JavaServer Faces

 Una de las ventajas de Java Server Faces es la gran cantidad de componentes y proyectos como Primefaces hacen el desarrollo muy fácil. En esta ocasión mostraremos como crear un pequeño componente usando composite de Java Server Faces para crear un paginator que incluiremos en componentes como <p:dataTable>, <p:dataGrid> de una manera muy sencilla. El procedimiento de creación es muy sencillo  Tenemos una interface IPaginatorX.java con los métodos  public default String last(PaginatorX paginatorX)  public default String first(PaginatorX paginatorX)  public default String next(PaginatorX paginatorX)  public default String back(PaginatorX paginatorX)  public default String skip(PaginatorX paginatorX) default   public PaginatorX loadPaginator(PaginatorX paginatorX){         return  paginatorX;     } Creamos una clase PaginatorX.java En el Controller definimos una clase que implementa IPaginatorX,  creamos un atributo de la clase PaginatorX. @Named @ViewScoped public class publ

jmoordbutils para descargar y visualizar archivos en cualquier directorio mediante Java Server Faces

jmoordbutils para descargar y visualizar archivos en cualquier directorio mediante Java Server Faces  Generalmente necesitamos ver imágenes desde un  directorio fuera del directorio /resource de nuestro proyecto Web con Java Server Faces.También queremos ver y descargar archivos PDF.  El procedimiento sería  crear un StreamedContent para su manejo. Dentro de la libreria jmnoordbutils desarrolle  la claseJMoordbMediaManager.java que simplifica el trabajo. Es importante considerar los @Scoped. Lo recomendable es que la clase que administre el StreamContent sea @RequestScoped. (Ya esta implementado en la biblioteca jmoordbutils). De esta manera solo necesitas  indicar en el componente <p:graphicImage la ruta completa del archivo de imagen que deseas mostrar. Solo necesitamos inyectar en el controller  @Inject  JMoordbMediaManager  jMoordbMediaManager;     y crear el metodo  public String saveToMediaContex(String pathOfFile) {         try {                JmoordbMediaContext.put(&quo

Ver Imágenes desde un directorio diferente a resources

  Ver Imágenes desde un directorio diferente a resources   Generalmente necesitamos ver imágenes desde un  directorio fuera del resource de nuestro proyecto Web con Java Server Faces.. El procedimiento seria crear un StreamedContent para su manejo, dentro de la libreria jmnoordbutils desarrolle la clase JMoordbGraphicImageView.java que simplifica el trabajo. Es importante considerar los @Scoped. Lo recomendable es que la clase que administre el StreamContent sea @RequestScoped. (Ya esta implementado en la biblioteca jmoordbutils). De esta manera solo necesitas indicar en el componente <p:graphicImage la ruta completa del archivo de imagen que deseas mostrar.  <p:graphicImage id="image" value="#{jMoordbGraphicImageView.generateImage(var.foto)} " stream="false" cache="false" /> pagina xhtml Controller @Named @ViewScoped public class DatatableColumnaImagenController implements Serializable { // <editor-fold defaultstate="colla