Pasos de la Demo¶
La demo está dividida en dos partes. En ambas partes se consideran dos desarrolladores, A y B. El workspace de partida contiene dos proyectos: es.sidelab.mylyn y es.sidelab.nomylyn, que son la aplicación RCP Mail que viene como plantilla al crear una aplicación RCP. El workspace contendrá muchos más proyectos, pero estos dos son sobre los se mostrarán las características de Eclipse. El resto de proyectos pretenden dar una visión de lo que puede ser el contenido de un workspace normal.
Configuración inicial¶
Se detallan a continuación los pasos necesarios para realizar la demo. Necesitaremos cuatro workspaces, dos para la parte 1 y otros dos para la parte 2. En cada parte un workspace está asignado a cada usuario (A y B).
Creación del workspace inicial¶
Vamos a crear un workspace desde el que partir con varios proyectos:
- Si tenemos Eclipse con el C/C++ SDK, importamos los plug-ins de cdt:
- File > Import > Plug-in Development > Plug-ins and fragments > Next
- En el tercer recuadro (Import As) seleccionamos Projects with source folders > Next
- En el cuadro de búsqueda escribimos cdt y pulsamos Add all > Finish
- Incluimos los fuentes de objetciveclipse
- Abrimos la perspectiva SVN Repository Exploring
- Damos de alta el repositorio: http://objectiveclipse.googlecode.com/svn/ con usuario anonymous
- Botón derecho sobre el trunk > Checkout as... > Find projects in the children of the selected resource > Finish
- En el siguiente diálogo > Finish
- Exportar el workspace.
- File > Export > General > Archive File
- Pulsar Select all. Elegir el destino y el nombre del zip: mylyn-starting-ws.zip
Este workspace será el punto de partida para el resto de la demo. Ahora se crean los diferentes workspaces que se utilizarán durante la demo:
- nomylyn-A es directamente el workspace mylyn-starting-ws.zip.
- nomylyn-B es mylyn-starting-ws.zip con el proyecto es.sidelab.taller.mylyn.nomylyn
- mylyn-A es mylyn-starting-ws.zip con el proyecto es.sidelab.taller.mylyn.mylyn
- mylyn-B es mylyn-starting-ws.zip con el proyecto es.sidelab.taller.mylyn.mylyn
La demo se realizará con dos máquina, una será la máquina del desarrollador A y la otra la de B. nomylyn-A y mylyn-A están en un la máquina de A y nomylyn-B y mylyn-B en la de B.
Parte 1. Rompiendo el build¶
A trabaja con el workspace nomylyn-A y B con nomylyn-B.
En primer lugar A da de alta el repositorio de Subversion del proyecto. Para ello abre la perspectiva Svn Repository Exploring (Window > Open Perspective) y añade el repositorio. A continuación descarga el proyecto es.sidelab.taller.mylyn.nomylyn pulsando el botón derecho sobre la carpeta del proyecto en el repositorio > Checkout as... > Find projects in the children of the selected resource > Finish
En esta parte el desarrollador A está trabajando sobre una tarea en la que tiene que mover las clases Perspective y View al paquete es.sidelab.taller.mylyn.nomylyn.views. A mueve estas dos clases, y justo después se le pide una tarea urgente consistente en cambiar dos cosas:
- Poner barra de estado a la aplicación. Para ello tiene que abrir la clase
ApplicationWorkbenchWindowAdvisory en el métodopreWindowOpen, cambiar el argumento de la llamada asetShowStatusLinea true - En la clase
NavigationViewcambiar el métodocreateDummyModelpara cambiaraol.comporthat.com
Una vez terminada la implementación de la tarea urgente, lo tiene que subir al repositorio. Para ello sincroniza todo el proyecto, y en la perspectiva de sincronización sólo sincroniza las clases del paquete sidelab, dejando fuera las de views.
A continuación, B se sincroniza para descargar los cambios que hizo A relativos a la tarea urgente. B hace Update de todas las clases, y cuando vuelve a la perspectiva de Java se encuentra con que hay errores de compilación.
Cuando A sincronizó las clases del paquete sidelab, algunas de ellas tenían cambios que se debían a haber movido Perspective y View, pero A no cayó en eso (bastante tiene el pobre con la otra tarea y apagar los fuegos).
Parte 2. Sincronización con Mylyn¶
A y B dan de alta el repositorio Bugzilla de sidelab y crean una consulta para las tareas del producto Mylyn y componente Code.
B añade una nueva tarea: Mover Perspective y View a su propio paquete. B pone a A en el campo asignee, para asignarle la tarea. En este campo se puede utilizar la función de autocompletar con Ctrl+Espacio. Aceptamos la tarea y la activamos.
Movemos las clases Perspective y View al paquete es.sidelab.taller.mylyn.mylyn.views. Cuando terminamos de hacerlo Mylyn nos incluye en el contexto las clases ApplicationActionBarAdvisor y ApplicationWorkbenchWindowAdvisor, dado que sus imports han cambiado.
A continuación nos piden la tarea urgente. B añade la tarea, indicando que hay que cambiar las dos cosas que se indicaban en la parte 1.
A sincroniza la consulta (se sincroniza automáticamente, pero para la demo lo haremos manual): botón derecho sobre la categoría Mylyn > Synchronize. A abre la tarea, la acepta y la activa.
A hace las dos modificaciones pertinentes.
A asocia el contexto a la tarea: abre la tarea, marca la casilla Attach context, marca la tarea como resuelta (Resolve > Fixed) y pulsa Submit.
A sincroniza el proyecto. En la vista a priori aparece todo. Se selecciona SVN Change sets y aparecen las dos tareas y en negrita la activa. Le damos botón derecho > commit. Nos introduce como comentario del commit el bug. Le damos a OK.
B ahora se sincroniza y se baja los cambios. El proyecto no tiene errores de compilación.
B abre la tarea que creó y la sincroniza. Le aparece el contexto que asoció A. Pulando con el botón derecho > Retrieve context, B recupera el contexto que tenía A. Esto permite focalizar muy rápidamente a la hora de trabajar con una tarea.