style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

Kotlin, Camel y MyBatis

Introducción

Ya con nuestro servicio en forma de mock, podemos empezar a extenderlo un poco mas e incluir mas endpoints. En ese sentido agregaremos consultas a una base de datos, usando MySQL; no sera una tabla muy grande, pero servirá para ejemplificar el proceso. El mapeador de objetos java a SQL sera MyBatis, voy a hacer enojar a muchos tal vez, pero considero que JPA es de los frameworks mas obscuros del mundo Java :D, no se enojen; a mi no me gusta, no significa que no sea util para alguien.

Vamos a obtener los datos de la base para las operaciones que ya creamos, getAll y getByID, asimismo agregaremos una operación mas para insertar Preguntas en la base.

Prerequisitos

Ahora si tenemos mas pre-requisitos:

  • MySQL instalado en donde sea pero que tengamos acceso a una base
  • El conector jdbc-mysql en el repo local de maven
  • El proyecto hasta el POST anterior

La Base de Datos

La base por ahora solo sera una tabla QUESTION, con la estructura siguiente:

CREATE TABLE IF NOT EXISTS `questions`.`QUESTION` (

Java Scheduler

Hola Amigos, soy nuevo en esta pagina, les tengo una pregunta a ver si alguien me puede ayudar..

La question es que quiero hacer un scheduler para agendar jobs que ejercutaran queries a "X" base de datos, he empezado ver quartz , que opinian creen que sea buen API para mi requerimiento o hay alguno otro que deberia revisar la idea es :

Que un usuario llene unos campos como el cron expression, query username y password se hara una extracion de los registros y se creara un archivo, y se mandare por email el resultdo de su queries, pero quiero ser capaz de monitorear la JVM porque si varios Job estan corriendo al mismo tiempo se pueden terminar el heap de la JVM, tener la habilidad de terminarlos y monitorealos

Espero sus opiniones de antemano gracias

Kotlin, Camel y CXF

Mock del primer servicio

Una vez que tenemos la base del proyecto, podemos agregar nuestro primer servicio REST usaremos la referencia JAX-RS 2 con la implementacion Apache CXF.

Nuestro primer servicio sera un endpoint de preguntas, con dos operaciones la primera consultar una lista de preguntas, de momento escritas en el mismo codigo, y la segunda de esa lista de preguntas obtener una en particular por su codigo.

Prerequisitos

De momento el unico requerimiento previo es tener nuestro proyecto como lo dejamos en el primer post.

Mensajes de Camel

Apache camel al igual que EJB estan basados en los principios de lo que ahora conocemos como microservicios antes de que incluso se llamaran asi, pequenias aplicaciones que al sumarse todas dan como resultado un proceso complejo, cada microservicio se comunica con otros para resolver la tarea en especifica que tiene asignada.

Hello World!!! Kotlin

Introduccion

Este es el inicio de una pequenia serie de posts donde tratare de mostrar una alternativa a Spring y a JEE para la creacion de Servicios, desde la perspectiva del middleware.

Para ello hare uso de una herramienta no tan conocida, pero que ha estado ahi desde hace mucho tiempo (gratuita tambien), facilitando la integracion de sistemas empresariales, esta herramienta es Apache Camel. Apache Camel es en resumen un framework que implementa los Patrones de Integracion Empresariales EIP por sus siglas en ingles, o sea pautas a seguir para facilitar la integracion de Sistemas.

Herramientas de desarrollo

Para poder realizar la primera practica estas son las herramientas que debemos tener instaladas en nuestra maquina:

  • Intellij Community Edition
  • Java SE 9 integrado en el PATH de nuestra maquina de desarrollo
  • Gradle integrado en el PATH de nuestra maquina de desarrollo

Crear el proyecto con Intellij

Primero abrimos IntelliJ y seleccionamos la opcion Create New Project

Java México dice adiós a todos ... bienvenido csharpmexico.org

Java México (http://www.javamexico.org) nació gracias a la iniciativa de @benek y otros usuarios más con el objetivo de ayudar a la comunidad de programadores java. Conforme han pasado los años el mantenimiento del sitio se ha vuelto insostenible debido a varios factores como: el spam, altos costos de mantenimiento de los servidores, y ¡hasta los cyber ataques!

Por estas y muchas más razones se ha decidio tomar la lastimosa decisión de dar de baja al sitio y crear uno nuevo y completamente diferente. El único pero es que es necesario pedir de su valiosa cooperación, el monto monetario (voluntario hay que decir)
es alrededor de $50 dólares por usuario registrado. En caso de ver apatía por parte de los usuarios se verá la necesidad de cerrar el sitio y crear uno nuevo, pero con costo de registro.

Dejemos que sea el propio Benek quien aclare todo esto:

Opiniones acerca de Groovy

Hola a todos,

Tengo una inquietud, toda mi vida he estado trabajando con java y sus diferentes frameworks, spring, hibernate, etc, pero en mi empresa me asignaron a un proyecto con Groovy y servicios rest básicamente, con el cual no había trabajado y es algo para un buen tiempo.

Mi inquietud es acerca de que tan rentable es aprender este lenguaje? Me refiero a nivel laboral si se encuentran buenas propuestas? Este lenguaje va para rato?

He leído opiniones en algunos foros unas no muy buenas otras sí.

Gracias de antemano por cualquier opinión.

Saludos.

Meetup JVM MX de Noviembre 2017, Ciudad de México

Como algunos saben, el equipo de JVM MX realiza un meetup cada mes con charlas relacionadas a la Java Virtual Machine y/o la tecnología Java.

El meetup de este mes fue anunciado hace unos momentos y el contenido es excelente.

La agenda es la siguiente:

  • Bienvenida por Enrique Zamudio
  • Presentación "Desplieque de aplicaciones con Docker Swarm" por Carlos Cavazos
  • Presentación "Más allá de REST con gRPC" por Domingo Suárez
  • Presentación "Realizando pruebas con Spock" por Andrés Almiray
  • Cerveza / Pizza / Networking

¡El cupo es limitado a 60 personas y tiene cuota de recuperación de $100 MXN!

Si les interesa reserven su lugar cuanto antes.

Fecha y hora: 27 de noviembre, 7 a 10 pm.
Lugar: Oficinas de Globant. Av. Insurgentes Sur 859, Piso 15, Ciudad de Mexico.

Registro aquí: https://www.eventbrite.com/e/jvm-mx-noviembre-2017-tickets-39778840583

Comparar fechas

       Un pequeño aporte a Luz Jasso. Mie, 08/02/2017 - 13:26        

        //fechas de ejemplo
        String fecha_ini = "2007-11-08";
        String fecha_fin = null;
        //hojas de ejemplo
        String hr_ini    = "02:00";
        String hr_fin    = "02:30";
        //declaracion de variables
        double diff, min, hrf;
        Date   result1, result2;
       
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm");
       
        try {
            result1 = formater.parse(fecha_ini+" "+hr_ini);
            result2 = formater.parse(fecha_fin+" "+hr_fin);
            //
            diff = result2.getTime() - result1.getTime();
            long tiempoMensual =0;
            tiempoMensual += diff;
            min=((diff%3600000)/60000)/60;
            hrf=diff/3600000;            
        } catch (ParseException ex) {
            //Escriba aqui los valores de retorno al ocurrir error
            min=0;hrf=0;
        }

Se lo robaron

Buenos días comunidad,

Hace mucho tiempo, años, leí aquí una entrada que básicamente decía "Read The Fucking Stack Trace", esto aunque parezca menor, desde hace mucho cuando empezaba a trabajar con alguien que va aprendiendo, lo ponía a leer dicha entrada, era la iniciación. Hoy llegó alguien no tan nuevo, pero igual al ver un error en el que pidió ayuda, mi respuesta iba a ser la entrada al blog, pero desapareció, tal vez sea alguna tontería, pero si se pudiera recuperar, estaría chingon.

Saludos.

Curiosidades programando Java

Hoy les voy a mostrar algunas curiosidades que se pueden hacer con código Java que puede que algunas sirvan y algunas pues solo para divertirse:

1.- Crear en línea una colección mediante una clase anónima y un bloque inicializador de instancia en lugar de hacerlo con Arrays.asList:

public static void main(String[] args) {
       
        List<Integer> lista = Arrays.asList(7,9,1);
        lista.add(3);
        System.out.println(lista);
}

El inconveniente de usar Arrays.asList es que debido a que la lista se genera desde la raiz de un arreglo, estos por naturaleza tienen un tamaño definido y no puede redimensionarse por lo tanto la lista generada no soporta la operación add o alguna otra que intente modificar el tamaño y devuelve UnsupportedOperationException.

public static void main(String[] args) {
       
        List<Integer> lista = new ArrayList() {{ add(7); add(9); add(1)}};
        lista.add(3);
        System.out.println(lista);
        System.out.println(lista.getClass());
}
Distribuir contenido

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">