Presentación Especialista Java Enterprise
 

Guía de laboratorio

En esta sesión de ejercicios vamos a describir los aspectos más importantes de las distintas plataformas, utilidades y sitios web necesarios para el desarrollo de las prácticas del Especialista.

Los elementos más importantes son los siguientes.

A continuación vamos a detallar el uso de estos elementos y algunos otros también necesarios para el desarrollo del Especialista.

Ordenadores de la EPS

Los laboratorios en los que se realizarán las prácticas están gestionados por la Escuela Politécnica Superior. Para acceder a ellos se debe contar con una cuenta de usuario en la EPS. Todos los alumnos del Especialista están registrados en la EPS con su NIF como usuario y contraseña. Es posible cambiar la contraseña entrando como usuario en la zona de servicios de la EPS (http://www.eps.ua.es > servicios)

Al arrancar el ordenador deberás seleccionar como sistema operativo Windows XP. En este sistema operativo se encuentra el programa VirtualBox con el que se pondrá en marcha la MV Ubuntu en la que se realizarán las prácticas.

¡Cuidado con tus datos! No debes confiar en que lo que dejes en el disco duro del ordenador se encuentre en la siguiente sesión. Los técnicos pueden reinstalar los ordenadores en cualquier momento. Debes tener también precaución con el propio disco externo. Si le sucediera algo a la máquina virtual perderías todo lo hecho en el curso. Por ello debes tener cuidado de copiar la máquina virtual en tu ordenador de casa y de copiar los proyectos Java en el repositorio CVS del curso (ver sección 3).

La configuración de Windows de los ordenadores tiene una resolución muy baja del monitor que hace muy difícil el trabajo con la MV Ubuntu. Procura cambiar esta resolución a una más alta. La resolución de 1600x1200 es muy recomendable ya que te permite trabajar sin problemas con una buena resolución de la MV Ubuntu.

Un problema de los ordenadores de la EPS es que sus discos duros están formateados con el sistema FAT-32. Este sistema tiene un límite de 2GB en el tamaño de los ficheros que puede gestionar, lo que hace imposible copiar allí las imágenes de la MV. Esta es una de las razones por las que vamos a trabajar con la imagen virtual del disco duro externo. En tu casa, sin embargo, no deberías tener esta restricción. Allí sí que podrás copiar la imagen de la MV a tu propio disco duro y trabajar sobre ella (ver sección 2). Al terminar debes recordar apagar Ubuntu para que la imagen de la MV quede estable.

Máquina virtual VirtualBox

Uno de los elementos más importantes de las prácticas del curso es la MV con una distribución de Linux Ubuntu y con las herramientas necesarias para realizar todos los ejercicios. Su uso te hace sencillo continuar en casa los ejercicios y prácticas realizados en clase y garantiza que todos utilizamos el mismo entorno de trabajo. Tampoco nos afectarán los cambios en las instalaciones de los ordenadores de la EPS.

El disco imagen de la MV original se encuentra en el disco USB y comprimida en la zona restringida de apuntes de la web del Especialista: Especialista JavaEE.vdi.zip.

La MV Ubuntu debe ser puesta en marcha con la última versión del programa VirtualBox que está disponible en la página de VirtualBox, o en la web del Especialista (versión Windows): VirtualBox-3.2.8-64453-Win.exe (versión Mac): VirtualBox-3-1.2.8-64453-OSX.dmg. Se encuentra también instalado en los ordenadores de la EPS en los que se realizan las prácticas, en la partición de Windows.

VirtualBox es multiplataforma y opensource. Existen versiones para Windows, Mac y Linux y es posible trabajar con la misma máquina virtual en distintos sistemas operativos. Puedes, por ejemplo, trabajar en la EPS en Windows y después continuar el trabajo en casa en Mac.

Instalación de Ubuntu

La instalación de Ubuntu en la MV es la 10.04, con las actualizaciones disponibles a Septiembre de 2010. Para disminuir su tamaño, hemos eliminado paquetes que no son imprescindibles para su utilización en el curso. Por ejemplo, hemos eliminado todos los paquetes de OpenOffice y los de las herramientas de correo electrónico Evolution.

Otra característica importante de la instalación es que hemos desactivado en ella la descarga e instalación automática de actualizaciones. De esta forma nos aseguramos de que ninguna actualización modifica el funcionamiento de las aplicaciones instaladas. El inconveniente de esto es que no dispondrás de las actualizaciones de seguridad que distribuye Ubuntu, pero no es un problema ya que no vas a utilizar la MV como un servidor accesible en Internet.

En la MV se ha creado el usuario especialista con la contraseña especialista. Se ha activado el login automática en Ubunutu para que no sea necesario autentificarse cada vez. Tendrás que utilizar la contraseña para ejecutar comandos en modo superusuario o cuando se bloquee la pantalla:

Las aplicaciones instaladas son Java, Eclipse, Tomcat y MySQL.

Java

Se ha instalado la versión 6.0 update 21.

El JDK de Java se ha instalado en el directorio /opt/jdk1.6.0_21 de la MV Ubuntu.

Para añadir los comandos java y javac al path hemos hecho:

$ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.6.0_21/bin/java" 1
$ sudo update-alternatives --set java /opt/jdk1.6.0_21/bin/java
$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk1.6.0_21/bin/javac" 1
$ sudo update-alternatives --set javac /opt/jdk1.6.0_21/bin/javac

(tomado de http://www.guia-ubuntu.org/)

Tomcat

Se ha descargado la versión 6.0.29 en el directorio /opt/apache-tomcat-6.0.29. No se ha activado ningún servicio de httpd en Ubuntu, porque ejecutaremos la mayoría de aplicaciones web desde Eclipse. Más adelante comentaremos cómo referenciar esta ruta desde Eclipse.

MySql

Se ha instalado con el sistema de actualización de paquetes de Ubuntu (Synaptic). Se han instalado los paquetes mysql-server, mysql-query-browser y mysql-admin. Una vez instalados, se han añadido automáticamente las aplicaciones en el menú Aplicaciones > Programación. El servicio de MySQL se arranca por defecto cada vez que arranca el ordenador.

La contraseña del usuario root de MySQL es especialista.

IDE Eclipse

Se ha instalado la versión más actualizada de Eclipse Galileo en /opt/eclipse. También se ha instalado un acceso rápido en la barra superior de Ubuntu.

Cómo crear la MV Ubuntu

Lo primero que tenemos que hacer en el ordenador de la EPS es crear con VirtualBox la máquina virtual en la que vamos a trabajar. Vamos ha crear la MV de forma que trabaje con la imagen de disco que tenemos en el USB externo (EspecialistaJavaEE.vdi).

Arranca VirtualBox y crea una nueva MV de tipo Linux Ubuntu con el nombre Especialista Java EE

Define el tamaño de la memoria de la MV en 1024 MB. También podría funcionar correctamente con menos memoria, pero así nos aseguramos de que Eclipse (y después NetBeans) tiene suficiente memoria para compilar y lanzar las aplicaciones que desarrollemos.

Ahora debemos vincular la imagen vdi del disco externo con la máquina virtual que estamos creando. Para ello, en la pantalla Disco Duro Virtual seleccionamos la opción la opción Usar un disco duro existente.

Aparecerá una ventana llamada Manejador de Medios Virtuales en la que deberemos añadir la imagen EspecialistaJavaEE.vdi.

Una vez añadido el disco duro ya podemos terminar y probar a lanzar la máquina virtual.

Debes realizar un proceso similar en tu ordenador de casa, para crear allí una MV con las mismas características y disco duro que en el laboratorio de la EPS. De esta forma podrás continuar trabajando en la misma MV que en el laboratorio. Podrías incluso mejorar el rendimiento copiando la imagen .vdi en el disco duro local y crear la MV con esa copia. El (pequeño) inconveniente de esta opción es que debes recordar copiar la imagen de nuevo al disco duro externo para tener allí la última versión de la MV.

La configuración de VirtualBox se guarda en el fichero VirtualBox.xml que está en la carpeta .VirtualBox del home del usuario (C:\Documents and Settings\EPS\.VirtualBox en el laboratorio de la EPS). En esta carpeta se encuentra también la carpeta Machines en la que se guarda la configuración de la MV creada (en el fichero Especialista JavaEE.xml). Estos ficheros son muy útiles en caso de querer cambiar manualmente alguna de las características de la configuración, tanto de VirtualBox, como de las máquinas virtuales creadas.

Guest Additions y directorios compartidos

Es muy cómodo trabajar con una MV en la que se han instalado las Guest Additions. Con ellas instaladas es posible pasar del SO invitado (Ubuntu) al SO anfitrión (Windows) sin tener que pulsar ninguna combinación de teclas, sólo moviendo el cursor. También son útiles para copiar y pegar texto entre ambos sistemas operativos.

Las Guest Additions ya están instaladas en la imagen inicial. Si en algún momento actualizas VirtualBox, deberás también actualizar la versión de Guest Additions. Para ellos debes seleccionar la opción Dispositivos > Instalar "Guest Additions" del menú de Virtual Box que aparece cuando estamos ejecutando la MV. Esto montará un disco en Ubuntu que tiene activada la opción de autoejecución. Acepta la autoejecución y se lanzará el comando que instala el Guest Additions en el host invitado. Una vez instaladas, debes desmontar el CD y reiniciar Ubuntu.

Una vez instaladas las Guest Additions es posible compartir directorios entre el ordenador invitado (Ubuntu) y el huesped (Windows, Mac, etc.). Para ello selecciona la opción Dispositivos > Directorios Compartidos y pulsa en el icono para añadir un nuevo directorio transitorio (no se guardan los datos de un arranque a otro). Aparecerá una ventana en la que debes indicar la ruta del directorio del ordenador anfitrión (Windows) que se quiere compartir y un nombre simbólico con el que identificar ese directorio. Para indicar la ruta del directorio de Windows puedes también escoger la opción del desplegable que abre el navegador de archivos para seleccionarlo gráficamente. Vamos a introducir como ruta: C:\Documents and Settings\EPS\Escritorio y como nombre simbólico para ese directorio escribimos Windows. De esta forma estamos creando un dispositivo que puede ser montado en el sistema y que tiene como nombre Windows.

Para montar el directorio debemos crear un directorio en Ubuntu (o usar un directorio existente) y llamar al comando mount como root:

especialista@especialista:~$ cd Escritorio 
especialista@especialista:~/Escritorio$ mkdir Compartido
especialista@especialista:~/Escritorio$	sudo mount -t vboxsf -o uid=1000,gid=1000 Windows Compartido

Los parámetros uid=1000,gid=1000 hacen que el propietario de la carpeta compartida sea el propio usuario, con lo que no es necesario ser root para explorarla.

Para desmontar el directorio llamamos al comando umount:

especialista@especialista:~$ sudo umount Compartido

Cómo copiar la MV

Supongamos que en tu casa trabajas con la imagen de la MV en tu disco local y que en el disco externo tienes la versión más actualizada resultado de trabajar en el laboratorio de la EPS. Lo único que tienes que hacer es copiar la MV más reciente del disco externo a tu disco local (¡Cuidado en no hacerlo al revés). Cuando arranques la MV de tu casa ya estarás trabajando con la misma versión con la que terminaste en la EPS. Cuando termines de trabajar en casa, debes actualizar la imagen del disco externo: apaga la MV con cambios (así salimos limpiamente de Ubuntu sin dejar ficheros abiertos en el disco duro virtual) y copia el fichero Especialista JavaEE.vdi al disco externo.

Montaje de dispositivos externos en la máquina virtual

Un detalle que hay que tener en cuenta al utilizar VirtualBox es que los recursos externos de la MV (disco CD/DVD, puertos USB, etc.) están compartidos con el ordenador anfitrión (Windows XP) y puede haber conflictos al utilizarlos. VirtualBox proporciona unos botones con los que se puede habilitar esos recursos. Cuando se pulsan, dejan de estar disponibles en el anfitrión y pasan a estarlo en la MV. Este es el caso de la unidad de CD/DVD o de otros.

Sin embargo, hemos detectado un problema al utilizar la memoria USB debido a un bug de VirtualBox. Suponemos que se arreglará en posteriores actualizaciones de la aplicación. Mientras tanto, puedes mover ficheros de Windows a Ubuntu con la opción de directorios compartidos.

Apuntes del Especialista

Los apuntes, trasparencias, plantillas para los ejercicios y demás material docente se encuentran en un sitio web restringido a los alumnos del Especialista. Puedes acceder a esta zona pinchando en el recuadro correspondiente (azul) en la web pública del Especialista (http://web.ua.es/especialistajava) o escribiendo directamente la URL http://www.jtech.ua.es/j2ee/restringido/. Una vez introduzcas tu usuario de Especialista Java Enterprise y tu contraseña podrás acceder a esta web.

El login en este sitio web es las iniciales de tu nombre y tu primer apellido. La contraseña es el número de DNI, sin la letra de control. Por ejemplo, si el nombre del alumno es Pedro Pérez, su login es pperez

Si deseas cambiar tu contraseña (o no la recuerdas), puedes pulsar en el enlace correspondiente. Se enviará un mensaje a tu dirección de correo con un enlace con el que podrás modificar la contraseña.

Moodle

Vamos a utilizar Moodle como plataforma de trabajo colaborativo. La usaremos para gestionar los foros, las entregas de ejercicios y alguna que otra encuesta que iremos presentando .Se accede pinchando en el recuadro correspondiente (amarillo) en la web del Especialista o escribiendo directamente la URL http://moodle.jtech.ua.es.

Al igual que el resto de recursos de acceso restringido, el usuario de acceso será las iniciales del nombre y tu primer apellido. La contraseña inicial será el DNI, y la primera vez que te registres te pedirá una nueva contraseña.

Uno de los elementos principales que utilizaremos de Moodle son los foros, que utilizaremos para resolver dudas y para las sesiones de consulta on-line del proyecto de integración. Desde la página principal de Moodle se puede acceder directamente a estos foros. Se llaman Foro general y Foro proyecto integración.

Para poder utilizar correctamente el foro es muy importante que actualices tu foto en Moodle. Para eso, debes pinchar en tu nombre (en la zona de Usuarios en línea o abajo a la derecha, donde pone Usted se ha autentificado como) y seleccionar la pestaña Editar información. Allí puedes colocar tu foto.

Cuando todos tenemos la foto es mucho más sencillo contestar e interactuar en el foro. La siguiente imagen muestra un ejemplo del foro general en la edición 2009-2010 del especialista:

Proyectos y espacios de trabajo en Eclipse

Eclipse es el entorno de programación que se va a usar en todas los módulos del curso. El trabajo en Eclipse se organiza en proyectos que se guardan en carpetas que Eclipse denomina espacios de trabajo (Workspaces). Un espacio de trabajo se corresponde con un directorio físico del disco duro y los proyectos se corresponden con subdirectorios suyos. Para organizar mejor los trabajos que se irán realizando, crearemos un espacio de trabajo por cada uno de los módulos del Especialista.

Nota
Eclipse guarda la configuración del espacio de trabajo y de los proyectos en ficheros ocultos que residen en los mismos directorios que los espacios de trabajo y los proyectos. Los ficheros más importantes son .metadata que se guarda en el directorio raíz de cada espacio de trabajo, .project que se guarda en el directorio raíz de cada proyecto y otro fichero .classpath en cada proyecto con información necesaria para la compilación en Java de las clases del proyecto.

Cuando arrancamos Eclipse por primera vez aparece un cuadro de diálogo en el que nos pide el espacio de trabajo en el que vamos a trabajar.

Por defecto, Eclipse sugiere el directorio workspace del usuario de la sesión activa. En el caso de la MV, al estar ejecutando Linux en la cuenta especialista, el directorio que sugiere Eclipse es /home/especialista/workspace. Si aceptamos ese espacio de trabajo, Eclipse crea el directorio y comenzaremos a trabajar en él.

Podemos abrir otro espacio de trabajo pulsando el botón Browse o escribiendo su ruta en el campo de texto. Eclipse abrirá el directorio correspondiente, o creará un nuevo directorio si no existe.

Un espacio de trabajo puede contener distintos proyectos. Cada proyecto puede contener (entre otras cosas) un conjunto de clases Java y un conjunto de librerías. Los proyectos pueden estar relacionados, de forma que uno utilice clases o librerías Java que residen en otro. Veremos todo esto con detalle en el módulo Java y Herramientas de Desarrollo. En la sesión de hoy estudiaremos los aspectos más sencillos relacionados con los proyectos. Entre otras cosas, cómo crearlos, importarlos, guardar una copia de seguridad o subirlos a un repositorio CVS. Por último, explicaremos cómo realizar una entrega de los ejercicios realizados en el servidor Moodle del especialista.

Creación e importación de proyectos

En este pequeño ejercicio vamos a comprobar lo sencillo que es trabajar con un espacio de trabajo Eclipse. Vamos a crear un pequeño proyecto Java. Para ello seguiremos los siguientes pasos:

  1. Abrimos Eclipse y creamos un espacio de trabajo llamado presentación.
  2. Creamos un proyecto (pres-agenda) y algún fichero dentro del proyecto.
  3. Importamos otro proyecto en el espacio de trabajo.

Vamos a continuación a realizar estos pasos de forma detallada.

1. Para crear el espacio de trabajo llamado presentacion debemos arrancar Eclipse y cambiar el nombre del espacio de trabajo sugerido:

Una vez arrancado Eclipse en el espacio de trabajo definido, tendrá el siguiente aspecto:

2. El panel vertical izquierdo es el destinado a contener los proyectos, ahora está vacío. Para crear un proyecto podemos escoger la opción File > New > Java Project... o pulsar el botón derecho sobre el panel de proyectos y escoger la opción New > Java Project.... En cualquiera de estos casos, aparecerá un asistente que nos guiará para crear el tipo de proyecto que deseemos. En este caso vamos a crear nuestro primer proyecto Java. Escribimos como nombre del proyecto pres-agenda. Todos los nombres de proyecto vamos a escribirlos precedidos del nombre corto del módulo en que estemos haciendo los ejercicios.

Cuando pulsamos Finish Eclipse crea el proyecto. Aparece como una carpeta en el panel de proyectos. En el disco duro se habrá creado el directorio correspondiente. Una vez creado el proyecto, vamos a crear en él un pequeño programa Java, que nos va a servir para demostrar algunas de las características de Eclipse. En el programa vamos a definir una clase Tarjeta con los datos de una tarjeta de contactos: id (int), nombre (String) y eMail (String) y una clase Main con el programa principal de la aplicación, que crea un par de tarjetas, las guarda en un array y lo recorre para mostrarlas por la salida estándar.

Todas las clases deben estar en el paquete org.especialistajee.agenda. Es una costumbre habitual utilizar como prefijo en el nombre del paquete la URL de la empresa u organización que desarrolla el código en orden inverso. De esta forma se garantiza que el nombre completo de la clase es único y no coincide con otras clases desarrolladas por otras organizaciones. En nuestro caso la URL http://especialistajee.org está redirigida al frontal del Especialista: http://web.ua.es/especialistajava.

Para crear una clase seleccionamos New > Class y rellenamos el cuadro de diálogo con el nombre de la clase y el paquete. Comenzamos con la clase Tarjeta:

Escribimos la clase Tarjeta con los campos indicados, los getters y setters correspondiente y un constructor que cree una tarjeta nueva a partir de un identificador. Podemos probar a utilizar la ayuda de Eclipse para generar código con la opción Source > Generate Getters and Setters ... o Source > Generate Constructor using fields ...

Creamos una clase Main en la que declaramos un array de tarjetas, creamos y añadimos un par de tarjetas y recorremos el array imprimiendo sus datos en la salida estándar. La estructura de clases que aparece en el proyecto es esta:

Antes de lanzar la aplicación vamos a probar a modificar la configuración de los paneles en la perspectiva actual. Una perspectiva es un conjunto de vistas en unas posiciones determinadas. Una vista es un panel especializado de Eclipse que permite interactuar sobre una determinada característica del proyecto. Eclipse contiene una enorme cantidad de vistas que permiten gestionar múltiples aspectos del desarrollo: listas de tareas por hacer, baterías de pruebas, despliegue, edición y compilación, etc. Todas estas vistas se organizan en un conjunto de perspectivas predefinidas.

Las perspectivas que vamos a utilizar principalmente en el curso son Java y Java EE.

Añadimos la vista Navigator que nos permite explorar la estructura de archivos creados en el disco duro. Puede ser que con las pruebas dejemos bastante cambiada una perspectiva. Si queremos volver a la configuración por defecto debemos seleccionar Window > Reset Perspective..

3. Ejecutamos la aplicación con la opción Run > Run As > Java Application. Una forma rápida de acceder a esta opción es con el icono de play en la barra superior de eclipse.

4. Por último vamos a probar la importación de proyectos Eclipse. Vamos a hacer la prueba con un proyecto que hemos creado para esta sesión. Se encuentra comprimido en el fichero sesion01-ejercicios.zip, en la página principal de los apuntes de este módulo (lo puedes descargar directamente desde este enlace). Guarda el fichero ZIP sin descomprimir en el escritorio, por ejemplo.

Importa el proyecto con la opción File > Import... (o pulsando el botón derecho sobre el panel y seleccionando Import > Import...). Selecciona General > Existing Project into Workspace. Selecciona Select archive file y escoge el fichero descargado. Aparecerá el proyecto que contiene, denominado PuntosEnCanvas. Se trata de una sencilla aplicación Java en la que se abre una ventana y se dibujan algunos puntos en ella. Puedes ver cómo aparece marcada la opción Copy projects into workspace, indicando que Eclipse copia el proyecto del interior del fichero ZIP al espacio de trabajo.

Una vez importado, puedes consultar el código fuente del proyecto y también ejecutarlo. Después, para seguir el convenio de que todos los proyectos de un mismo módulo comiencen su nombre con el módulo, cambia el nombre del proyecto a pres-puntos-en-canvas con la opción Refactor > Rename....

Nota
Hay que hacer notar la gran portabilidad de los proyectos de Eclipse (debido sobre todo a que Eclipse está desarrollado en Java). Es posible comenzar a trabajar en Windows y seguir trabajando en cualquier otro sistema operativo (Linux o Mac OS X). El único detalle a tener en cuenta es el de asegurarse de usar la misma codificación de texto (text encoding) en todos los sistemas. Por defecto, Eclipse usa la codificación de texto del sistema operativo, lo que puede dar lugar a problemas de compatibilidad al abrir ficheros de texto creados en otros sistemas operativos. Lo recomendable cuando vamos a trabajar con distintos SOs es escoger una única codificación (ISO-8859-1, por ejemplo) y un único delimitador de fin de linea (el de Unix, por ejemplo). Para escoger la codificación en la que va a trabajar Eclipse hay que seleccionar la opción Window > Preferences > General > Workspace.

Repositorios CVS

La tecnología CVS (Control Version System) proporciona un sistema cliente-servidor de control de versiones y permite que varios desarrolladores trabajen simultáneamente en un mismo proyecto. CVS es muy usado en los equipos de desarrollo software, ya que permite que sincronizar un único repositorio remoto (donde se encuentra el proyecto en el que se está trabajando) con múltiples clientes locales (desarrolladores), de forma que todos los clientes comparte el mismo proyecto, pueden subir sus cambios y mantener sus proyectos sincronizados. Existe una gran variedad de sistemas de control de versiones como Subversion, Mercurial o Git. Hemos escogido CVS por motivos históricos (es uno de los sistemas más antiguos y extendidos) y por la robustez y la integración del cliente CVS de Eclipse. En esta sección vamos a comprobar cómo funciona el sistema y cómo será el ciclo de trabajo habitual de desarrollo.

Un escenario común de uso de CVS en los equipos de desarrollo de software es el que se representa en la imagen anterior. El servidor CVS mantiene en un repositorio la última versión y la historia del proyecto en desarrollo. Un desarrollador trabaja en su copia local hasta haber codificado (¡y probado!) algunos cambios en algunos ficheros del proyecto. Una vez se ha asegurado de que los cambios son correctos, se realiza un commit (confirmación) de los ficheros, subiéndolos al servidor. Allí se sustituyen los ficheros antiguos por los nuevos, anotándose la historia de cambios. Los otros desarrolladores que están trabando simultáneamente también subirán sus cambios (normalmente, en ficheros diferentes). En la siguiente sesión de desarrollo, cada desarrollador debe realizar un update para actualizar sus proyectos locales antes de proceder de nuevo a su modificación. Si más de un desarrollador modifica el mismo fichero, CVS lo detecta y lanza un error, para que se solucionen manualmente los conflictos.

Los clientes CVS proporcionan un interfaz gráfico que simplifica la conexión al repositorio y la realización de todos estos commit y update. Eclipse contiene un cliente CVS que utilizaremos para subir todos los proyectos desarrollados.

El ciclo de trabajo recomendable para trabajar con CVS es el siguiente:

  1. Realizar un update del proyecto para actualizar la versión local con los posibles cambios de los compañeros.
  2. Trabajar en el código del proyecto.
  3. Hacer un update para comprobar si algún cambio subido al repositorio entra en conflicto con lo que hemos desarrollado.
  4. Finalmente hacer un commit para subir nuestros cambios al repositorio.

Cada alumno tiene disponible en el servidor del Especialista (www.jtech.ua.es) un repositorio privado en el que puede mantener de forma remota los proyectos en los que está trabajando. El nombre del repositorio coincide con el login del alumno.

Los datos del repositorio CVS son los siguientes:

  • Dirección: www.jtech.ua.es
  • Ruta del repositorio: /usr/local/cvs-especialista/<login>
  • Modo de acceso: extssh
  • Login: login del alumno (iniciales del nombre + primer apellido, sin espacios y en minúsculas)
  • Contraseña: DNI (sin letra)

El login de cada alumno en el servidor CVS está formado por las iniciales del nombre y el primer apellido. Por ejemplo, el login de Ana Isabel Pérez Carrascosa sería aiperez. La contraseña es el número del DNI del alumno, sin la letra de control.

Cómo subir un proyecto al repositorio CVS

Eclipse permite publicar en CVS los proyectos, no los espacios de trabajo. Supongamos que queremos guardar el proyecto pres-proyecto1 creado en esta sesión.

Nota
Es necesario que todos los proyectos desarrollados en el Especialista tengan nombres distintos, ya que todos van a residir en el mismo repositorio CVS. Para evitar coincidencias en el nombre de los proyectos, seguiremos la norma de que las primeras letras del proyecto será siempre el nombre corto del módulo en el que estamos trabajando (pres para el módulo Presentación, jhd para el módulo Java y Herramientas de Desarrollo, etc.).

Para subir el proyecto al repositorio CVS lo seleccionamos, pulsamos el botón derecho y escogemos la opción Team>Share Project...

Aparecerá una ventana en la que hay que proporcionar los datos del repositorio CVS. Estos datos se grabarán en el directorio de trabajo de Eclipse y no tendrás que introducirlos de nuevo. Es recomendable no grabar tu contraseña de usuario si estás en un ordenador público.

A continuación debemos indicar cuál será el nombre que en el repositorio CVS va a tener el proyecto que vamos a subir. Es lo que se denomina nombre del módulo CVS. Por defecto Eclipse propone usar como nombre el propio nombre del proyecto (User projecto name as module name):

Pulsando el botón Next> aparecerá la siguiente pantalla en la que podrás revisar qué ficheros se van a guardar en el módulo recién creado. Aparecen con un signo + los ficheros que se van a añadir al módulo. A continuación pulsamos Finish y aparecerá la pantalla con el comando commit. Con este comando se guardan los cambios locales en el repositorio y se permite añadir comentarios sobre dichos cambios. Estos comentarios pueden ser revisados cuando consultemos la historia de cambios de un fichero.

Una vez guardados los ficheros en el repositorio, el proyecto quedará enlazado al repositorio CVS. En el panel de proyectos de Eclipse aparece el servidor CVS asociado al proyecto y todos los ficheros y proyectos enlazados aparecen con un icono especial:

Nota
La conexión entre los proyectos locales y repositorio CVS queda grabada en el disco duro en forma de unos directorios llamados CVS que se crean en los directorios enlazados. Los datos del repositorio CVS quedan también grabados en el directorio local del proyecto. De esta forma, al copiar el proyecto también se copia la conexión con el repositorio CVS.

Cómo subir al repositorio cambios en el proyecto local

Una vez creado o descargado un repositorio en un proyecto haremos modificaciones en el proyecto local: modificaremos el contenido de algún fichero, crearemos nuevos ficheros y directorios o borraremos ficheros existentes. Eclipse marca todos aquellos recursos que se han modificado con un símbolo especial (">").

Al igual que cuando subes el proyecto por primera vez, aparecerá la ventana Commit en la que podrás escribir un comentario sobre los cambios que has realizado. Una vez que aceptas el commit, Eclipse se conecta con el repositorio y actualiza los cambios. Verás que desaparece el signo '>' que marcaba las diferencias con el repositorio.

Aviso
Al final de cada sesión de ejercicios debes subir los proyectos con los que has estado trabajando al repositorio CVS. También lo puedes hacer si trabajas en casa y tienes conexión a Internet. De esta forma, el repositorio CVS estará siempre actualizado, te será más cómodo realizar la entrega de los ejercicios y siempre tendrás una copia de seguridad, aparte de la propia copia de la máquina virtual.

Cómo explorar versiones de un fichero

Una vez que se han subido distintas versiones de un mismo fichero es posible consultar su historia de cambios y comparar distintas versiones subidas al repositorio CVS.

Realiza varios cambios en el fichero prueba.txt y realiza commit varias veces. Escribe algún comentario en la ventana de commit.

Para ver la historia de cambios del fichero, selecciónalo con el botón derecho y pulsa la opción Team > Show History. Aparece el panel History en la parte inferior de la ventana de Eclipse.

Este panel es bastante interesante y tiene muchas funcionalidades. No tenemos demasiado tiempo para probarlas, pero sería interesante que las investigaras por tu propia cuenta. Aquí van algunos ejemplos.

  • Haciendo un doble click en cualquiera de las versiones se abre en el panel del editor su contenido.
  • Es posible comparar distintas versiones del documento pulsando el botón derecho sobre la versión que queremos comparar y escogiendo la opción Compare Current with 1.X.

El uso principal de CVS es la coordinación de diferentes desarrolladores accediendo a un repositorio común de código. Cuando desarrollemos la implementación del proyecto de aplicación en grupos utilizaremos esta funcionalidad.

Existen otras funcionalidades avanzadas de CVS que no vamos a ver en esta sesión, pero que son muy interesantes y utilizadas en los equipos de desarrollo. Entre ellas destacamos:

  • Modificación de un mismo fichero por más de una persona y gestión de los posibles conflictos en los cambios.
  • Definición de versiones en el proyecto.
  • Creación de ramas alternativas de desarrollo.

Como realizar la entrega de los ejercicios

Vamos a terminar realizando una entrega de los ejercicios. Antes sube el proyecto pres-puntos-en-canvas a tu repositorio CVS. En el panel de proyectos deben aparecer los dos proyectos conectados al repositorio.

Supongamos que ya hemos terminado todos los proyectos del módulo y que tenemos que entregar los ejercicios. Tenemos que comprimir todos los proyectos en un único fichero que es el que subiremos a Moodle. Vamos a verlo paso a paso.

1. En primer lugar, tenemos que desconectar los proyectos locales del repositorio CVS con la opción Team > Disconnect.... Los proyectos seguirán estando en el repositorio CVS (y podremos recuperarlos de allí cuando queramos). Al desconectar los proyectos debemos borrar también la información CVS. De esta forma sólo entregaremos el código fuente de los proyectos y no los datos de la conexión CVS.

2. Después debemos limpiar los proyectos, eliminando todo el código compilado (ficheros .class) y dejando sólo el código fuente. Para ello desactivamos la opción de construcción automática Project > Build Automatically y seleccionamos la opción de limpiar: Project > Clean... :

Con la vista Navigator comprobamos que los directorios bin en los que Eclipse deja los ficheros .class están vacíos.

3. Por último exportamos los proyectos a un fichero .ZIP utilizando la opción Export > General > Archive File y poniendo como nombre de fichero tu nombre de usuario:

Y sólo falta entregar en Moodle, en la tarea correspondiente al módulo que se ha terminado, el fichero pperez.zip generado:

Ciclo de trabajo

El ciclo de trabajo de una sesión de ejercicios será el siguiente. Supongamos que estamos en el módulo Java y Herramientas de Desarrollo (nombre corto: jhd):

  1. Crear el espacio de trabajo. Si es la primera sesión de ejercicios, deberás crear el espacio de trabajo jhd
  2. Crear o importar los proyectos. Crea los proyectos que se indiquen en la sesión de ejercicios y trabaja con ellos. Todos los nombres de proyectos tendrán como prefijo jhd-. Algunas veces se proporcionará una versión inicial de los proyectos en un fichero ZIP.
  3. Publicar en CVS. Sube los proyectos que has desarrollado a tu repositorio CVS privado. Asegúrate que al final de la sesión y antes de cerrar Eclipse, todos los proyectos estén sincronizados.
  4. Entrega de ejercicios. Limpia y exporta todos los proyectos en formato ZIP usando tu nombre de usuario (pperez.zip). Entrega el fichero en la tarea correspondiente de Moodle.
Nota
Una idea fundamental del ciclo de trabajo es la de las integraciones continuas (se explicará en el módulo Metodologías de desarrollo): al final de cada sesión el espacio de trabajo debería estar completo y listo para entregar.

Entrega de ejercicios

Desconecta los proyectos del CVS y expórtalos a un fichero login.zip. Entrégalo en la tarea de Moodle que está en el curso Materiales comunes y encuestas.