openxava / documentación / Modificar código de OpenXava

Puedes modificar el código de OpenXava para adaptarlo a tus necesidades, arreglar algún fallo, añadir nuevas características, etc.

Desde v7.0

El código de OpenXava ya no se incluye en la distribución, ahora lo tienes que coger desde el repositorio de OpenXava en GitHub repository. El código de OpenXava propiamente dicho está en el proyecto openxava dentro del repositorio:
Puedes modificarlo, compilarlo e instalarlo usando Git, Maven y tu IDE favorito. Si no estás familiarizado con Git y Maven, aquí te presentamos una guía detallada para modificar el código de OpenXava para tu aplicación usando OpenXava Studio.

Descargar el código desde GitHub

Primero ve a la pagina de OpenXava en GitHub y copia la URL del repositorio:

Después abre la perspectiva Git en OpenXava Studio, para ello pulsa en el botón en la esquina superior derecha:

Esto muestra un diálogo, escoge la perspectiva Git:

Una vez en la perspectiva Git, pulsa en Clone a Git repository:

Dado que la has copiado desde la página de GitHub, la URL del repositorio OpenXava se ha rellenado automáticamente, sólo tienes que pulsar en Next:

Se muestran todas las ramas, simplemente pulsa en Next:

Para acabar pulsa en Finish:

Ahora sé paciente mientras que el código del repositorio se descarga desde GitHub:

Cuando acabe tendrás el repositorio openxava listado en la parte izquierda de OpenXava Studio:

¡Enhorabuena! El repositorio de OpenXava está descargado en tu ordenador y configurado en el OpenXava Studio. El siguiente paso es importar el proyecto openxava en tu workspace.

Importar openxava en el workspace

Primero, vuelve a la perspectiva Java, para ello pulsa el botón correspondiente en la esquina superior derecha del OpenXava Studio:

Para importar el proyecto openxava pulsa en File > Import...:

Ahora selecciona Git > Projects from Git y pulsa en Next:

Escoge Existing local repository y pulsa en Next:

Selecciona el repositorio openxava y pulsa en Next:

Selecciona la carpeta openxava y pulsa en Next:

Asegurate de que openxava está marcado y pulsa en Finish:

Y por fin el proyecto openxava con todo su código está en tu workspace:

Ahora ya puedes modificar el código de openxava a tu gusto.

Modificar código de OpenXava

Primero, asegurate de que la versión en openxava/pom.xml es una SNAPSHOT. Abre el pom.xml dentro del proyecto openxava y verifica la versión:

Si estás usando la rama master seguramente la versión será una SNAPSHOT, si no modificala añadiendo el sufijo -SNAPSHOT. Esto significa que es una versión de trabajo, sin código congelado sino lista para ser modificada.

Ahora es el momento de modificar el código. Por ejemplo, edita el código de NewAction.java code añadiendo un print, como esto:

Después haz un mvn install en openxava, de esta manera:

En esta ocasión no es necesario hacer un mvn clean porque acabamos de descargar el código y target está vacío, pero si coges código nuevo desde GitHub (con un pull) deberías hacer un mvn clean también.

Ahora, ve a tu proyecto, edita el pom.xml y pon en la propiedad openxava.version el valor de la versión SNAPSHOT de OpenXava que tienes en tu workspace:

Esto es importante, porque si no tu proyecto no usará tu versión modificada sino la versión oficial de Maven Central.

Después haz un mvn clean en tu proyecto:

Y un mvn install también en tu proyecto:

!Enhorabuena! Tu proyecto está listo para que lo ejecutes con tu OpenXava modificado. Pruébalo.

Acortar el ciclo de modificación

Los pasos de arriba son para la primera modificación. A partir de ahora va a ser más fácil. Para hacer una modificación sólo necesitas tres pasos:

  1. Modifica el código de openxava.
  2. Haz un mvn install en openxava.
  3. Haz un mvn war:exploded en tu proyecto. Para esto puedes usar Run As > Build Maven ...

Y la siguiente vuelta de tuerca es usar el modo debug. Arranca tu aplicación pulsando el escarabajo:

De esta forma podrás modificar el código de openxava y ver el resultado en el acto, sin relanzar la aplicación e incluso sin recargar la página en el navegadro. Magia pura.

Ramas

En el ejemplo de arriba hemos modicado directamente la rama master, lo que no es un problema dado que no tienes permisos para hacer un push contra el repositorio de OpenXava. Sin embargo, puedes hacer un uso más avanzado de las ramas. Como mínimo, deberías crear tu propia rama antes de hacer cualquier cambio y hacer el cambio en tu propia rama. Cuando el cambio esté completo y funcione bien, puedes mezclar tu rama con el master.

Si quieres contribuir código a OpenXava, deberías crearte una cuenta en GitHub y después hacer un clon del repositorio de OpenXava en tu cuenta. Sigue las instrucciones de arriba pero coge el código de tu propio repositorio en vez desde openxava/openxava. De esta forma, puedes crear una rama, hacer un push y crear un pull request contra el repositorio original de OpenXava, donde podría ser aprobado e incluido en la siguiente versión oficial de OpenXava.

Desde v6.4

Has de definir OpenXava.buildOpenXava (o OpenXava.buildAddons) en External Tools de Eclipse (OpenXava Studio). Para aprender como ejecutar o definir tareas Ant en Eclipse sigue estas instrucciones.
Necesitas un JDK para ejecutar las tareas Ant. En Eclipse ve a External Tools > OpenXava.buildOpenXava (o buildAddons) > JRE y escoge un JDK. A veces puede fallar si el tools.jar en el classpath no coincide con el JDK usado.
Si tienes problemas compilando con acentos ve a External Tools > OpenXava.buildOPenxava (o buildAddons) > Common > Encoding : ISO-8859-1 (no es necesario desde v6.5.2)

Para modificar el código Java, XML o archivos i18n de OpenXava:

Para modificar el código Java o XML de Addons:

Para modificar JSP/HTML/JavaScript/CSS:

Desde v6.4 aunque todavía puedes navegar al código OpenXava desde tu propio código dentro de Eclipse, no puedes editar el código directamente, es de solo lectura. Por tanto, has de buscar la clase en cuestión en OpenXava/src tu mismo, modificarla y seguir los pasos de arriba.

Hasta v6.3.2

Para modificar el código Java, XML o archivos i18n de OpenXava:

Para modificar el código Java o XML de Addons:

Para modificar JSP/HTML/JavaScript/CSS: