Entradas

Jakarta EE 9 Essentials Archetype

Imagen
Acabo de publicar mi primer arquetipo a Maven 🎉🎉🎉 Se llama "Jakarta EE 9 Essentials Archetype". Permite crear un proyecto básico con las mínimas dependencias, compatible para cualquier servidor Jakarta EE 9. Tiene una nada de dependencias y de plugins, solo lo necesario para que se construya una aplicación Jakarta EE. El sitio web del proyecto: https://apuntesdejava.github.io/jakartaee9-essentials-archetype/ Detalles del arquetipo en el repositorio central: https://search.maven.org/artifact/com.apuntesdejava/jakartaee9-essentials/0.1/maven-archetype Modo de uso Para crear un proyecto basta con ejecutar el siguiente comando desde la consola desde una carpeta / directorio en blanco: mvn -DarchetypeGroupId=com.apuntesdejava \ -DarchetypeArtifactId=jakartaee9-essentials \ org.apache.maven.plugins:maven-archetype-plugin:generate Si se ejecuta así, el maven preguntará por el nombre el grupo, del artefacto y del paquete del proyecto a crear. Con NetBeans Con IntelliJ Con

Cambiando propiedades de conexión JDBC en Quarkus.... durante ejecución (y en Payara Micro)

Imagen
Normalmente , los valores de las conexiones DEBEN estar separado del código (si eres principiante, ya debes saberlo a rajatabla). Y si usamos frameworks como Quarkus, PayaraMicro, OpenLiberty, etc (ah, también Springboot) estos ya tienen preparado características como "perfiles" donde las propiedades pueden establecerse de acuerdo a cada perfil, o también podemos usar los perfiles del Maven para usar tal o cual propiedades. O también podemos hacer que tomen los valores del entorno (variables del entorno donde se está ejecutando, sea test, staging, producción, etc). En fin, podemos configurar los valores de las propiedades ANTES de que se ejecute la aplicación para que funcione tranquilamente. Y así, no pasó nada. PEROOO!!! Hay veces que el cliente, en su afán de implementar seguridad extrema dice que nada de las credenciales de base de datos puede estar en variables de entorno, ni en las propiedades de despliegue, ni nada. Sino que están en un recurso externo (puede ser un A

Payara + MySQL en contenedores

Imagen
 Seguimos con la contenedir.. bueno, poniendo todo en contenedores. Ahora, una aplicación que estaba desarrollando en vivo, una aplicación Jakarta EE (con EJB, JPA y JSF) lo he puesto para que, en desarrollo, se pueda ejecutar en un Payara normal del IDE, y que también pueda ejecutarse en contenedores. Aquí explicaré un poco de cómo se logra esto, y un breve repaso a la organización de la aplicación.

OpenJDK + Liferay + MySQL, en contenedores

Imagen
  Estamos en el mundo de la contened.. conteneni...contenedoriza ... bueno, que todo lo colocan en contenedores. Lo cual es un gran alivio en la configuración y puesta en producción de servidores. No tendríamos de qué preocuparnos más que esté bien configurado a través de un archivo YAML. Una de los temas más recurrentes que he hablado en este humilde blog es sobre el CMS hecho en Java llamado Liferay. Siempre la parte que más me preocupaba era: ¿cómo diablos podemos ponerlo en producción con algunos pasos?. Pues bueno, aquí lo explico en este post: usando Docker.

Hablemos Java - Primer "En vivo" del blog: Streams, Lambdas y otras cosas más

Imagen
Comenzando una nueva sección: los vídeos en vivo. Para que se vea que no hay truco o trampa, y si hay, que aparezcan en vivo. Aquí la primera emisión donde hablamos sobre Streams y Lambdas. Si te gusta el contenido y deseas ver más, apóyame con un like y suscribíendote al canal. Estate atento a las siguientes emisiones. Podemos conversar ahí y hasta podríamos resolver problemas juntos.

Quarkus con NetBeans 12

Imagen
En este vídeo conoceremos un poco de Quarkus, crear una aplicación MicroProfile, y ejecutarlo desde NetBeans.           Luego iremos desarrollando más funcionalidades MicroProfile en este proyecto de Quarkus

Midiendo el rendimiento de rutinas

Imagen
Estos días me ha tocado revisar código hecho por otros, y encontré un par de rutinas que me parecieron interesantes para revisar. Estas las publiqué en la cuenta de twitter: #CodeReviewChallenge A ver, cómo optimizarían este código (que encontré)? pic.twitter.com/PUWZy0erpG — ☕ Apuntes de Java ☕ 😷🏠 (@apuntesdejava) April 6, 2020 #CodeReviewChallenge #QuedateEnCasa #StayHome ¿Cómo simplificarían el contenido de este método? (sin usar bibliotecas adicionales) pic.twitter.com/rfRn8Qb2Ga — ☕ Apuntes de Java ☕ 😷🏠 (@apuntesdejava) April 7, 2020 He recibido respuestas interesantes. Lo que publicaré en este post y en un vídeo es ver cuál es la rutina más rápida, en base a sus respuestas.