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