Adopt OpenJDK – Hackealo!

openjdk

Esta es una traducción del original disponible en: http://the2ndeinstein.blogspot.com.br/2013/04/adopt-openjdk-hack-into-it.html, me pareció un post interesante para todo aquel interesado en iniciarse en la programación de OpenJDK.
Hola a todos, esta entrada tiene el objetivo de promocionar uno de los mejores proyectos creados por la comunidad Java. Todos sabemos que Java es open-source, incluso JDK (Java Development Kit) es tambien open-source. La versión open-source del JDK se denomina OpenJDK y el website puede consultarse acá. En el website cualquier persona puede colaborar y trabajar junto a la comunidad, para hacer un mejor Java. O como dice el slogan de la comunidad «Haz el futuro de java».
Future JavaUna de las mejores formas para mejorar OpenJDK es el programa Adopt-OpenJDK, las metas detrás de el son:

  1. Incentivar a los miembros de los JUGs a involucrarse en OpenJDK
  2. Mejorar el lenguaje y la maquina virtual que usamos diariamente!
  3. Promover OpenJDK a toda la gran comunidad Java
  4. Ampliar la base de colaboradores a OpenJDK

De esta forma, estoy bastante interesado a incentivar a mi JUG (GuateJUG) a adoptar este programa también. Con este articulo pretendo demostrar que tan fácil es adoptar este programa como individuo.

Requisitos

  1. Un conocimiento avanzado en Java. Si eres un principiante, este programa podría no ser para ti. Aprende un poco de Java hasta alcanzar un nivel alto y vuelve pronto 🙂
  2. Una computadora o laptop. De preferencia con un sistema operativo Linux o incluso una maquina virtual.
  3. Una cuenta en Bitbucket.org

TODO

Antes de comenzar, por favor lee los siguientes enlaces. De lo contrario puede que te quedes a la mitad del proceso. Las metas de Adopt-OpenJDK son mejorar OpenJDK como tal. Asi que lo que debes hacer es:

  1. Mejorar el código fuente (Coinification, StringBuffer to StringBuilder son solo ejemplos de lo que se puede mejorar) ve otros ejemplos.
  2. Haz pruebas del código fuente (jtreg y JUnit son excelentes frameworks para iniciar!)
  3. Enviá tus parches cuando estén listos (Recuerda las reglas)
  4. Si tienes experiencia con OpenJDK, promocionalo como yo!

Bueno es hora de empezar los hacks!

Paso-a-paso (idea general)

  1. Preparar una maquina virtual (Usa ubuntu como una recomendación de Martijn Verburg)
  2. Descarga el código fuente
  3. Intenta construir y compilar el código fuente original
  4. Mejora y prueba el código
  5. Crea parches y envialos

Más practico

  • ¿Como descargar el código fuente?
    1. Haz fork de algunos proyectos en https://bitbucket.org/adoptopenjdk. Debes realizar fork de: jdk8, jdk8-jdk, jdk8-jaxws, jdk8-jaxp, jdk8-nashorn, jdk8-langtools, jdk8-hotspot, jdk8-corba. En general OpenJDK esta conformado por varios componentes, y estos deben ser configurados y compilados para que puedan ser utilizados en nuestro sistema.
    2. Instala los programas recomendados en tu maquina virtual (en ubuntu simplemente ejecuta: sudo apt-get install <programa>)
      • mercurial
      • openjdk-7-jdk
      • build-essential
      • libX11-dev
      • libxext-dev
      • libxrender-dev
      • libxtst-dev
      • libcups2-dev
      • libfreetype6-dev
      • libasound2-dev
      • ccache
      • g++-4.7-multilib
    3. Clona cada uno de los proyectos de los cuales hiciste fork desde bitbucket. Para eso usa: hg clone <tu repositorio en bitbucket>. Actualmente este repositorio debe ser clonado via https y no ssh. Organiza todo en una carpeta para que sea fácil de usar, con una estructura similar a la siguiente:
        • <carpeta superior>
          • hack-jdk
            • jdk8
            • jdk8-jdk
            • jdk8-jaxws
            • jdk8-jaxp
            • etc…
    4. En la carpeta jdk8, ejecuta bash ./get_source.sh. Ejecutalo como root y este script descargara todo el código fuente de inmediato. Al finalizar el proceso encontraras algunas carpetas extra dentro de jdk8 (jdk, langtools, hotspot, etc.)
    5. En algunos casos puede suceder que el código no esta completo entonces puede copias los proyectos que fueron clonados dentro de la carpeta jdk8. Ejemplo: copia todo lo que esta dentro de la carpeta jdk8-jdk hacia jdk y has lo mismo con jdk8-nashorn, jdk8-langtools, jdk8-hotspot, jdk8-jaxws y otros componentes.
    6. Tu código fuente esta completo!
  • ¿Como compilar el código fuente?
    1. Ejecuta bash ./configure dentro de la carpeta «jdk8»
    2. Luego compila con sudo make all
    3. Si todo sale bien, has compilado el código de manera adecuada
  • ¿Como modificar el código fuente?
    1. Todos los componentes tienen una carpeta «src». Modifica y mejora el código fuente!
  • ¿Como ejecutar pruebas usando jtreg?
    1. Ingresa en el directorio «jdk8/<components>/test». Encontraras varias carpeta dentro, asi que solamente utiliza make "<package name>" &> test.log
  • ¿Como ejecutar pruebas usando TestNG?
    1. Descarga e instala TestNG (version recomendada: 6.8). Después de descargar los archivos .zip, copia testing.x.y.z.jar hacia la carpeta «lib»
    2. Ve hacia la carpeta test y ejecuta: ant test
  • ¿Como crear parches (y como enviarlos)?
    1. Para crear los parches utilizamos mercurial. Después de modificar el código utiliza el siguiente comando hg diff <path/change/something.java> > <nameClass.java>
    2. Ejemplo: hg diff src/share/classes/com/oracle/net/Scp.java > Sdp.path
    3. Envialo para el grupo Adopt-OpenJDK en Google groups. Muchos desarrolladores experimentados son activos en el grupo y revisaran el código que has enviado a OpenJDK.
  • ¿Alguna otra pregunta?
    1. Pueden escribir al autor original en yosi.pramajaya [at] gmail [dot] com o seguirlo en su twitter
    2. Escriban sus dudas a Adopt OpenJDK en Google groups.

One Reply to “Adopt OpenJDK – Hackealo!”

Deja una respuesta

Tu dirección de correo electrónico no será publicada.