Skip to main content

Posts

Jakarta NoSQL con MongoDB perspectivas

 Jakarta NoSQL con MongoDB perspectivas Hace unos años conversaba con un gran amigo Otavio Santa, acerca de bases de datos NoSQL. Es admirable el trabajo que lleva adelante Otavio y otros desarrolladores en la especificación Jakarta NoSQL. La definición oficial en el sitio de Jakarta: " Jakarta NoSQL is a Java API standard that streamlines the integration of Java applications with NoSQL databases. It defines a set of APIs and provides a standard implementation for most NoSQL databases. The goal is to create the specification in Jakarta EE to help Jakarta EE developers create enterprise-grade applications using Java® and NoSQL technologies. It helps them create scalable applications while maintaining low coupling with the underlying NoSQL technology." Si leemos un poco la documentación oficial nos encontraremos que se define mediante dos capas: Communication Layer: Contiene 4 módulos uno para cada tipo de bases de datos NoSQL. Es como  JDBC para bases de datos relacionales. Ma
Recent posts

Primefaces p:schedule con p:dialog con fechas no editables

 PrimeFaces nos ofrece un componente sumamente interesante para manejar nuestras fechas este es <p:schedule> https://www.primefaces.org/showcase/ui/data/schedule/basic.xhtml Cuando deseamos mostrar un dialogo con las fechas seleccionadas pero sin necesidad de editar la fecha podemos recurrir a un truco muy sencillo. Agregar  en el dialog un componente <p:calendar con rendered="false", de esta manera se mostrara  el contenido del dialog, pero no tendremos la fecha editable, que para algunas circunstancias puede no ser adecuado.                     <p:outputLabel value="Fecha:" styleClass="p-text-bold" rendered="false"/>                     <p:calendar  value="#{testController.event.startDate}" pattern="dd/MM/yyyy hh:mm a"                                  rendered="false"                                  />

Controlar F5 o Refresh Button del Navegador con Jakarta Server Faces

Hay varias formas de Controlar cuando el usuario esta en una pagina Web desarrollada con Jakarta Server Faces. Presiona el boton Refresh o la tecla F5 para recargar o actualizar la pagina actual. Creamos un proyecto Jakarta EE   y se ha configurado la pagina de inicio en el archivo web.xml Al ejecutar la aplicación se muestra la pagina de login.xhtml donde se pedirá las credenciales del usuario. al ingresar las credenciales nos dirige a la pagina index.xhtml Si presionamos la tecla F5 o el botón Refresh del navegador  podrá notar que sera redirigido a la pagina de login.xhtml, en lugar de actualizar  la pagina index.xhtml. Para evitar esta situación y mantener al usuario observando la pagina actual se pueden implementar de varias formas:  Controlar los eventos con JavaScript, Guardar datos en el cliente. Personalizar mediante <f:viewAction> En nuestro caso mostraremos como utilizar algo diferente mediante  <f:viewAction/>, es un ejemplo demostrativo solamente. Lo que harem

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