Compilando y depurando un plugin de ejemplo para gvSIG 2.1.0 desde un IDE (NetBeans).

Hola a todos,
aquí estoy de vuelta para ver como podemos descargarnos los fuentes de uno de los proyectos de ejemplo de gvSIG y como podemos compilarlo y entrar en depuración de él.
En este artículo usaré como IDE Netbeans 8, que es el IDE que uso habitualmente para desarrollar con gvSIG desde hace un tiempo. Mas adelante me instalaré un Eclipse y, en otro artículo, contare como se haría con él. De todos modos si eres un desarrollador familiarizado con Eclipse no debería serte difícil trasladar las ideas que vaya exponiendo a él.

Ojo, esto no pretende ser un tutorial sobre NetBeans, solo contar los pasos para poder descargar y depurar un plugin de gvSIG con él.

Voy a suponer que ya has seguido los pasos descritos en el artículo “Como descargar y compilar gvSIG 2.1.0 en Linux y Windows“ y que ya tenemos las herramientas de base que se comentan ahí instaladas y configuradas.

Para seguir los pasos de este artículo necesitaremos acceso a internet. En general para compilar gvSIG necesitaremos acceso a internet. Y además necesitaremos:

  • Un instalable de gvSIG, en mi caso  “gvSIG-desktop-2.1.0-2262-testing-win-x86-standard-withjre.exe”
  • Un instalable de NetBeans

Lo primero instalaremos el IDE, NetBeans.
Yo me lo descargué de la web oficial de NetBeans directamente, de la sección descargas:

https://netbeans.org/downloads/

Nos encontraremos con varias distribuciones disponibles para descargar:

  • Java SE
  • Java EE
  • C/C++
  • HTML5 & PHP
  • All

Con la distribución “Java SE” será suficiente para compilar la gran mayoría de los proyectos de gvSIG (con la excepción de los proyectos que requieren nativas, que están fuera del alcance de este artículo).

Simplemente la descargaremos y procederemos a instalarla.
Durante la instalación nos solicitará básicamente dos cosas, dónde vamos a instalarlo y donde está el JDK a utilizar. En este último caso seleccionaremos el JDK que instalamos tal como comenté en “Como descargar y compilar gvSIG 2.1.0 en Linux y Windows“.

Una vez que ya tengamos instalado NetBeans, instalaremos gvSIG. Procederemos a hacer una instalación normal, pero no lo instalaremos en “Archivos de programa”; yo recomiendo instalarlo dentro de la carpeta c:/devel, donde ya descargamos los fuentes de gvSIG. Yo lo he instalado en:

c:/devel/gvsig/2.1.0-2262

El instalarlo fuera de “Archivos de programa”, es porque en mi instalación de Windows mi usuario no tiene permisos de administración y si lo hago ahí luego voy a tener algunos problemas cuando intente desplegar los binarios de mi plugin sobre esa instalación. Para escribir en la carpeta c:/devel, que he creado yo, no tendré problemas de permisos.

Una vez tengamos estas dos cosas instaladas, retocaremos el fichero “.gvsig-devel.properties” para que apunte a la instalación de gvSIG que acabamos de hacer en “c:/devel”.

Pues ya solo nos faltara una cosilla mas. En la distribución actual para Windows de gvSIG-desktop no se incluye en lanzador gvSIG.sh de gvSIG. Este solo se incluye en la distribución de Linux (en próximas distribuciones también lo incluiremos para Windows). Bueno, de momento no esta, así que tenemos dos opciones, si ya hemos compilado “org.gvsig.desktop” podemos cogerlo de la carpeta “org.gvsig.desktop/target/product” o si no lo tenemos a mano descargarlo desde:

http://devel.gvsig.org/svn/gvsig-desktop/trunk/org.gvsig.desktop/org.gvsig.desktop.framework/org.gvsig.andami/src/main/resources-application/gvSIG.sh

Y lo dejaremos en la carpeta donde instalamos gvSIG, junto al “gvsig-desktop.exe”.

Una vez tenemos ya estas tres cosas, podemos pasar a arrancar NetBeans.
Una vez arrancado descargaremos el proyecto “org.gvsig.landregistryviewer” y lo compilaremos. Lo descargaremos desde la url:

http://devel.gvsig.org/svn/gvsig-plugintemplates/org.gvsig.landregistryviewer/trunk/org.gvsig.landregistryviewer/

Para hacerlo, accederemos al menú:

Team->Subversion->Checkout…

netbeans-checkout1Nos presentará el siguiente cuadro de dialogo:

netbeans-checkout2

En el que introduciremos en el campo “Repository url” el valor de la url que he indicado antes en la que se encuentra el proyecto de ejemplo “org.gvsig.landregistryviewer”. Y le daremos a “Next”. Nos presentará la siguiente página del asistente en la que deberemos introducir la carpeta en la que queremos descargar el proyecto. En nuestro caso introduciremos “c:/devel”, y pulsaremos en “Finish”.

netbeans-checkout3

Terminada la descarga del proyecto nos informará de los proyectos maven que hay en el proyecto descargado y nos preguntará si queremos abrir alguno. El cuadro de diálogo será algo parecido al de la siguiente imagen:

netbeans-checkout4Pulsaremos en el botón “Open project…” para indicarle que proyectos queremos abrir y nos mostrara el siguiente diálogo.

netbeans-checkout5Seleccionaremos el proyecto “org.gvsig.landregistryviewer” y pulsaremos en el botón “Open”.
Al intentar cargar el proyecto la primera vez es fácil que se produzca algún error debido a que no estén descargadas algunas dependencias, mostrándonos un dialogo similar a este:

netbeans-checkout6Nos limitaremos a pulsar en “Close”.
Ahora simplemente nos limitaremos a compilar el proyecto que acabamos de descargar. Para ello lo seleccionaremos en la vista de “proyectos” y pulsaremos en el botón “Build project” de la barra de botones.

netbeans-checkout7En la consola inferior irá mostrando los mensajes de compilación y cuando termine tendremos compilado y desplegado nuestro plugin sobre la instalación de gvSIG.

netbeans-checkout8

Hasta aquí, hemos visto como preparar el entorno de trabajo, descargar y compilar el plugin. Si queremos ver en acción nuestro plugin simplemente arrancaremos Console2, iremos a la carpeta de la instalación de gvSIG, c:/devel/gvsig/2.1.0-2262, y ejecutaremos el gvSIG.sh.

$ cd c:/devel/gvsig/2.1.0-2262
$ ./gvSIG.sh

Vamos a ver como haríamos para depurar nuestro plugin.

Abriremos el subproyecto “org.gvsig.landregistryviewer.app.mainplugin”.

netbeans-abrir-proyecto1Podría suceder que el IDE no se haya percatado que ya tiene todas las dependencias que necesita y que descargo al compilar el proyecto. Si esto es así, nos presentará el siguiente cuadro de diálogo.

netbeans-abrir-proyecto2Si nos presenta este diálogo, pulsaremos en “Resolve Problems…” para que actualice las dependencias. Nos presentará el siguiente diálogo:

netbeans-abrir-proyecto3Simplemente pulsaremos en “Resolve…” y esperaremos a que termine de actualizar el proyecto. Cuando termine debería desaparecer la señal de atención de la lista de problemas, así que cerraremos el dialogo pulsando el botón “Close”.

Ahora cargaremos la clase LandRegistryViewerExtension y pondremos un punto de ruptura al inicio del método CreateViewWindow. Para ello simplemente haremos doble clic sobre el número de línea.

netbeans-debug1Una vez tengamos ya puesto el punto de ruptura, pasaremos a Console2 y nos dispondremos a arrancar gvSIG, pero le pasaremos los parámetros “–debug –pause”.

netbeans-debug4Esto arranca la JVM activando el debug para que podamos conectarnos a ella.

netbeans-debug5Es posible que según la configuración del firewall nos muestre un mensaje o incluso que no funcione esto. Deberemos asegurarnos que permitimos a la aplicación java.exe acceder al puerto 8765.

Una vez llegado aquí, volvemos al NetBeans, y nos enganchamos a gvSIG en modo depuración.

netbeans-debug2Nos pedirá los datos de conexión…

netbeans-debug3Y al darle a “OK” continuará la ejecución de gvSIG en modo depuración. Como hemos puesto un punto de ruptura se nos parará en él y podremos depurar nuestro plugin.

netbeans-debug7Si necesitamos ver el código de gvSIG, simplemente pulsamos Ctrl-O y tecleamos el nombre de la clase que queremos localizar. Por ejemplo, si quisiésemos poner un punto de ruptura en la creación del proyecto, teclearemos Ctrl-O y “DefaultProject”

netbeans-debug8Y pulsaremos en el botón “OK”.

netbeans-debug9Si no nos muestra el código fuente (que se lo descargue automáticamente depende de la configuración que tengamos en NetBeans), podremos pulsar en el botón “Attach Sources…” y pulsaremos en el botón “Download” del diálogo que nos aparezca.

netbeans-debug10Y cuando se haya descargado los fuentes que necesitemos, cerraremos la ventana pulsando en “OK”. Nos mostrará el código de la clase “DefaultProject” y podremos poner un punto de ruptura en su constructor.

netbeans-debug11Bueno, y hasta aquí llego por hoy…

Todo lo que he ido contando ha sido sobre un Windows 7. Los desarrolladores de Linux deberían poder seguirlo sin problemas, solo cambiando la ruta de c:/devel por la que utilicéis para dejar los fuentes.

Para los desarrolladores de Eclipse, los pasos son muy similares, lo mas complicado puede ser la configuración del soporte de maven que NetBeans trae ya de base. Por lo demás puede ser muy similar.

Me ha quedado un poco largo, sobre todo por las capturas de pantalla, pero he creído que podían ayudar a ir siguiendo el artículo.

Espero que os haya sido de utilidad.

Un saludo a todos.

About Joaquin del Cerro

Development and software arquitecture manager at gvSIG Team. gvSIG Association
This entry was posted in development, gvSIG Desktop, gvSIG development, spanish. Bookmark the permalink.

9 Responses to Compilando y depurando un plugin de ejemplo para gvSIG 2.1.0 desde un IDE (NetBeans).

  1. Pingback: Como descargar y compilar gvSIG 2.1.0 en Linux y Windows | gvSIG blog

  2. Pingback: Como descargar y compilar un plugin de gvSIG 2.1.0 | gvSIG blog

  3. Pingback: Compilando y depurando un plugin de ejemplo para gvSIG 2.1.0 desde un IDE (NetBeans). | Geo-How-To News

  4. Pingback: Conocimiento Abierto » Blog Archive » Compilando y depurando un plugin de ejemplo para gvSIG 2.1 desde Eclipse

  5. Pingback: How to download and compile a gvSIG 2.1.0 plugin | gvSIG blog

  6. Pingback: Compiling and debugging an example plugin for gvSIG 2.1.0 from an IDE (NetBeans) | gvSIG blog

  7. Cesar Martinez says:

    Un detalle importante, el fichero “.gvsig-devel.properties” al que hace referencia Joaquín es un fichero de texto que debe contener algo como:
    gvsig.product.folder.path=/home/user/gvSIG-desktop/gvSIG-desktop-2.1.0_build2268
    (reemplazando esta ruta por la ruta en la que hayamos instalado gvSIG).

    En Linux este fichero se debe crear en el HOME del usuario (si no existe): ~/.gvsig-devel.properties

    En Windows también, aunque en este caso la carpeta de usuario varía dependiendo de la versión de Windows (p. ej: C:\Users\user\, C:\Documents and Settings\user, etc).

  8. Pingback: How to download and compile gvSIG 2.1.0 on Linux and Windows | gvSIG blog

  9. Ana says:

    Muchas gracias por estos tutoriales que nos facilitan tanto la vida!!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s