Construyendo AFRYCA

En esta sección se ilustra el proceso de despliegue de AFRYCA partiendo desde 0. Para ello se asumen unos conocimientos básicos de Java y Eclipse RCP y también se partirá del supuesto de que el sistema cuenta con una instalación del JDK de Java 8.

Si bien la sección ilustra como realizar el proceso en un sistema operativo Linux, su contenido es extrapolable a cualquier sistema operativo. De igual modo, en la sección se emplea la última versión publicada de las diferentes herramientas utilizadas al momento de redactar la misma.

Instalar eclipse para desarrolladores RCP

La primera tarea pasa por la descarga del entorno de desarrollo de AFRYCA, Eclipse para desarrolladores RCP y RAP. El entorno está disponible para su descarga gratuita desde la página web de descargas de Eclipse:

http://www.eclipse.org/downloads/eclipse-packages/

En la página se ofrecen múltiples versiones o sabores de eclipse destinadas a satisfacer las necesidades de diferentes tipos de usuario. Para el desarrollo de AFRYCA es recomendable descargar la versión denominada 'Eclipse for RCP and RAP Developers', la cual viene equipada con los plug-ins que permiten desarrollar nuevos plug-ins y aplicaciones Eclipse RCP.

Página de descargas de Eclipse

La descarga proporcionará un archivo comprimido del entorno de desarrollo, el cual tras ser descomprimido puede ser ejecutado en cualquier directorio.

La utilización de eclipse hará necesario crear diferentes carpetas en el sistema. Para esta guía se seguirá la siguiente estructura de directorios (~ es un alias del directorio personal):

  • ~/afryca: Carpeta raíz.
  • ~/afryca/eclipse: Entorno de desarrollo.
  • ~/afryca/workspace: Workspace del entorno de desarrollo.
  • ~/afryca/git: Directorio por defecto de Git.
  • ~/afryca/export: Versiones exportadas de AFRYCA. 

Concluida la descarga del entorno de desarrollo se realiza su descompresión en la carpeta que se ha indicado previamente y se ejecuta el lanzador de la aplicación (eclipse en sistemas linux y eclipse.exe en sistemas windows).

Nada más iniciar eclipse se solicitará el directorio a emplear para el workspace, el cual eclipse utilizará para almacenar diferentes recursos tales como proyectos, configuraciones de plug-ins o preferencias de usuario. Siguiendo las indicaciones anteriores, el workspace queda establecido en el directorio ~/afryca/workspace.

Solicitud de workspace

Establecido el workspace se desplegará la ventana principal de eclipse mostrando la página de bienvenida. Si no se desea que esta página aparezca cada vez que se inicie el entorno puede desmarcarse la opción 'Always show Welcome at start up'. La página puede abrirse siempre que se desee desde el menú 'Help > Welcome'.

Pantalla de bienvenida de Eclipse

Cerrada la página de bienvenida se mostrará la perspectiva por defecto de eclipse, la cual en la versión para desarrolladores RCP es la perspectiva de plug-ins.

Perspectiva inicial de Eclipse

En este punto, el entorno de desarrollo ha quedado listo para su utilización, tan solo resta configurar las preferencias al gusto del usuario desde la ventana 'Window > Preferences'.

Como se indicó anteriormente, en la guía se emplea '~/afryca/git' como directorio por defecto para los repositorios de Git. Esto puede establecerse desde la página de preferencias 'Team > Git'. 

Directorio por defecto de Git

Tras pulsar el botón 'Apply' el directorio por defecto de Git quedará establecido.

Configurar el target

La configuración del target de desarrollo a emplear es una tarea crítica para el correcto funcionamiento de cualquier aplicación desarrollada.

El target de desarrollo o simplemente target es el conjunto de plug-ins que será empleado para compilar la aplicación. La propia instalación de eclipse para desarrolladores RCP es empleada por el entorno de desarrollo como target inicial para cualquier proyecto. Como en esta guía la versión empleada de eclipse concuerda con la versión necesaria del target, esta servirá como base para la configuración del target de AFRYCA.

En caso de que se emplee una versión posterior del entorno de desarrollo y se desee emplear un entorno previo de eclipse como target, esto puede hacerse fácilmente descargando la versión deseada como target y creando en el entorno de desarrollo un nuevo target que emplee los plug-ins de la versión descargada.

Como se ha especificado, en esta guía partiremos de la propia base de plug-ins que proporciona el entorno de desarrollo como target. Sobre este conjunto de plug-ins será necesario añadir:

  • Plug-ins para la compilación multiplataforma.
  • Plug-ins de BIRT.

Ambos conjuntos de plug-ins pueden ser añadidos al target a través de sitios web de descarga. Sin embargo, cada uno de los conjuntos mencionados requiere que la configuración del sitio web se realice de un modo específico, y el asistente para modificar los targets en la última versión de eclipse no permite esta acción. Por ello, el enfoque que se seguirá será el siguiente:

  1. Los plug-ins para la compilación multiplataforma serán añadidos al target a través del sitio web de descarga.
  2. Los plug-ins de BIRT serán instalados en el entorno de desarrollo pasando a formar parte del conjunto de plug-ins del mismo y por tanto de su target.

La primera parte de la configuración, la adicción de los plug-ins para la compilación multiplataforma en el target se lleva a cabo a través de la edición del target activo. Para ello es necesario acceder a su página de preferencias, la cual se encuentra en 'Plug-in Development > Target Platform'.

Target inicial de Eclipse

Pulsando el botón 'Edit...' se mostrará una nueva ventana de diálogo que permitirá modificar el target seleccionado en la página de preferencias anterior.

Edición del target

Pulsando en esta ventada de diálogo sobre el botón 'Add...', eclipse ofrecerá la opción de añadir un conjunto de plug-ins desde diferentes fuentes. En este caso se ha de seleccionar la opción de 'Software Site'.

Adición de contenido al target

Pulsando en 'Next >' se solicitará el sitio web de descarga y el conjunto de plug-ins a utilizar del mismo.

Adición de sitio web al target

Pulsando en 'Add...', la aplicación solicitará los datos del nuevo repositorio a emplear. En este caso se usará el sitio de actualizaciones de eclipse 4.6.

Adición de sitio web de actualizaciones de Eclipse 4.6 al target

Tras pulsar 'OK' se añadirá el repositorio y se mostrará en la tabla de contenido los grupos de plug-ins y features disponibles. Para el target de AFRYCA será necesario seleccionar las opciones:

  • Eclipse RCP Target Components.
  • Equinox Target Components.

Para permitir la compilación multiplataforma, es necesario desmarcar la opción 'Include require software' y marcar 'Include all environments', lo cual permitirá descargar versiones de los plug-ins para arquitecturas diferentes a la actual y que eclipse empleará para construir binarios para múltiples plataformas. 

Configuración del sitio web de actualizaciones de Eclipse 4.6

Tras pulsar en 'Finish' eclipse procederá a actualizar el target y transcurridos unos momentos los nuevos plug-ins quedarán integrados en el mismo.

Target de AFRYCA

Pulsando el botón 'Finish' nuevamente, el nuevo target se refrescará y eclipse procederá a compilar nuevamente cualquier proyecto existente en el entorno.

Como se indicó anteriormente, la versión actual de eclipse no permite configurar sitios web en el target con diferentes opciones. En concreto, no es posible tener dos sitios web configurados con diferentes valores para la opción 'Include all environments', opción necesaria para la compilación multiplataforma e incompatible con el uso de BIRT, el cual requiere que la opción 'Include require software' esté activa. Si en versiones posteriores de eclipse esto queda subsanado, será posible realizar toda la configuración del target de AFRYCA a través de un mismo punto. Hasta entonces, los plug-ins de BIRT necesarios serán instalados directamente en el entorno de desarrollo. 

La instalación de estos plug-ins se realiza desde el centro de descargas de eclipse, el cual se desplegará seleccionando la opción del menú  'Help > Install new software'. Tras ello se abrirá el centro de descargas y se solicitará el repositorio a emplear para descargar los plug-ins. En la últimas versiones de eclipse, parte de los plug-ins necesarios están directamente disponibles en el repositorio 'http://download.eclipse.org/releases/<version&gt;' correspondiente a la versión que se esté utilizando, por lo que basta con seleccionar este repositorio en la lista desplegable 'Work with:' y marcar el grupo de plug-ins 'Business Intelligence, Reporting and Charting'.

Instalar nuevo software

Dejando las opciones por defecto incluidas en el asistente y pulsando el botón 'Next >' eclipse informará de los diferentes plug-ins y features a instalar.

Instalar features de BIRT

Pulsando nuevamente el botón 'Next >' se solicitará la aceptación de las licencias de los plug-ins a descargar, lo cual es indispensable para realizar la instalación de los mismos.

Aceptar licencia de BIRT

Pulsando 'Finish' eclipse comenzará a descargar e instalar los plug-ins y tras concluir este proceso solicitará permiso para reiniciar la aplicación. Aún es necesario instalar un conjunto de plug-ins de BIRT adicional, por lo que se puede posponer esta acción hasta la instalación de todos los plug-ins necesarios.

Para instalar los plug-ins que restan es necesario desplegar nuevamente el centro de descargas de eclipse ('Help > Install new software') y en esta ocasión pulsar el botón 'Add...' para añadir un nuevo repositorio. Como nuevo repositorio se usará el sitio de actualizaciones de BIRT para la versión de eclipse en uso, que en esta guía es la 4.6.

Sitio de actualizaciones de BIRT

Tras pulsar 'OK' se añadirá el repositorio y se mostrará en la tabla de contenido los grupos de plug-ins y features disponibles. Actualmente para AFRYCA únicamente los cuatro primeros son necesarios, aunque para evitar incompatibilidades futuras es recomendable marcar todas los grupos.

Contenido a seleccionar del sitio de actualizaciones de BIRT

Pulsando el botón 'Next >' eclipse informará de los diferentes plug-ins y features a instalar de este repositorio.

Instalar features del sitio de actualizaciones de BIRT

Tras pulsar nuevamente 'Next >' y aceptar las licencias correspondientes eclipse procederá a descargar e instalar los nuevos plug-ins. Como en la ocasión anterior, tras concluir el proceso solicitará permiso para reiniciar la aplicación, tarea que es recomendable realizar en este momento.

Una vez el entorno termine de reiniciarse, habrá quedado preparado para descargar y compilar AFRYCA.

Conseguir el código fuente de AFRYCA

AFRYCA usa git como sistema de control de versiones. El proyecto se encuentra hospedado en uno de los servidores GitLab del grupo de investigación Sinbad².

http://ceatic.ujaen.es:8042/afryca/afryca.git

El desarrollo de AFRYCA se realiza siguiendo el flujo de desarrollo GitFlow, pudiéndose encontrar los siguientes tipos de ramas en el repositorio:

  • master: Versión estable.
  • develop: Versión en desarrollo.
  • feature/xxx: Rama en la que se desarrolla la funcionalidad xxx.
  • hotfix/xxx: Solución para el bug xxx.

El repositorio está formado por múltiples proyectos que contienen plug-ins y features de eclipse.

Las últimas versiones de eclipse integran por defecto EGit, un plug-in que añade toda la funcionalidad necesaria para trabajar con repositorios Git. Gracias a ello, puede clonarse el repositorio desde el propio asistente de importación de eclipse, el cual se abrirá seleccionando en 'File > Import'. En este asistente será necesario seleccionar la opción 'Projects from Git' para importar proyectos que usen este sistema de control de versiones.

Importar proyectos desde Git

Pulsando en 'Next >' se solicitará la fuente desde la que se importará el repositorio. En el caso de AFRYCA la opción indicada es 'Clone URI'.

Clonar un proyecto a partir de su URI

Pulsando una vez más la opción 'Next >' el asistente solicitará la introducción de los datos del repositorio correspondiente, para lo cual basta con pegar en el campo URI la runta del repositorio de AFRYCA.

Repositorio de AFRYCA

Pulsando 'Next >' eclipse intentará realizar una consulta al repositorio remoto tras la cual, a no ser que existan problemas de conexión, se obtendrá un listado de todas las ramas existentes. Para esta sección se seleccionarán todas las ramas, aunque no existe ningún problema si únicamente se desea seleccionar una parte de ellas. Las ramas no importadas inicialmente podrán ser seleccionadas posteriormente si así se desea. No obstante, si se deberá seleccionar al menos una de las ramas para emplear la misma como rama inicial, la cual además es aconsejable sea la rama 'master'.

Ramas del repositorio de AFRYCA

Tras establecer las ramas deseadas y pulsar 'Next >' se solicitará diferente información:

  • Directory: Ruta a emplear como directorio local para albergar el repositorio a clonar. Si se han seguido las instrucciones indicadas en cuanto a la estructura de directorios a emplear, este directorio será '~/afryca/git/afryca'. No obstante, con idependencia del directorio por defecto de Git establecido, puede emplearse cualquier directorio que se desee.
  • Initial branch: Rama inicial a emplear. Puede seleccionarse la que se desee aunque es recomendable emplear la rama 'master'.
  • Remote name: Nombre dado al repositorio desde el que clonaremos. Siguiendo las convecciones de Git, el repositorio de origen es denominado 'origin', por lo que se utilizará dicho identificador.

Configuración del repositorio de AFRYCA

Establecida la información anterior y tras pulsar 'Next >' el repositorio de AFRYCA comenzará a ser clonado en el sistema, lo cual se prolongará unos instantes. Finalizada la clonación el asistente solicitará establecer qué páginas del mismo emplear a continuación para importar el contenido del repositorio. Cualquiera de las tres opciones puede ser utilizada, aunque es recomendable emplear la opción 'Import as general project'.

Importar como proyecto general

Si se ha seguido la indicación anterior, tras pulsar 'Next >' solo restará establecer el nombre del proyecto en el espacio de trabajo, el cual puede cambiarse si se desea.

Creación del proyecto general de AFRYCA

Pulsando 'Finish' el proyecto general de afryca quedará creado en el espacio de trabajo. Este proyecto contendrá a su vez los proyectos de los plug-ins y features que conforman AFRYCA en el último commit de la rama que se haya seleccionado como rama inicial del repositorio.

Proyecto general de AFRYCA creado

El siguiente paso a realizar sería la importación de los proyectos de plug-ins y features contenidos en el repositorio principal de AFRYCA, pero previamente a ello, se seleccionará la rama del repositorio 'develop' para trabajar con la última versión del código fuente de AFRYCA.

Esta tarea es opcional y puede omitirse si se desea. Sin embargo, téngase en cuenta que los cambios de ramas no implicarán únicamente cambios en el código fuente de los plug-ins, si no que pueden incluir cambios en los plug-ins contenidos, nombres de los proyectos u otras modificaciones que podrían hacer necesario eliminar proyectos e importar otros nuevos. Por ello, para evitar la realización de trabajo de configuración adicional, es aconsejable no importar los proyectos del repositorio hasta establecer la rama a emplear.

Para modificar la rama empleada y pasar a trabajar con la rama 'develop', será necesario crear de forma local una copia que referencie a la rama 'develop' del repositorio remoto puesto que no se ha trabajado aún con esta rama.

Para crear la rama es necesario seleccionar la opción 'Team > Switch to > New branch', tras lo cual se mostrará el cuadro de diálogo para realizar la creación.

Creación de una nueva rama

Pulsando 'Select...' eclipse ofrecerá las diferentes ramas que es posible utilizar como base para crear la nueva rama. De entre todas las ofrecidas se deberá seleccionar la denominada 'Remote Tracking > origin/develop'.

Seguimiento de la rama develop

Tras pulsar 'OK', establecer el nombre de la rama a 'develop' y activar la opción 'Checkout new branch' todo el trabajo de configuración necesario para crear la rama se ha completado.

Seguimiento de la rama develop configurado

Pulsando la opción 'Finish' se creará la rama y el proyecto general de AFRYCA mostrará que ahora está seleccionada la rama 'develop' en lugar de la rama 'master'.

Proyecto general de AFRYCA en la rama develop

Estando el repositorio general de AFRYCA apuntando a la rama del mismo con la que se va a trabajar, ahora si, el siguiente paso es la importación de los proyectos de plug-ins y features de AFRYCA. Aunque esta acción puede realizarse en cualquier orden, es recomendable importar en primer lugar los proyectos de plug-ins para evitar que las features arrojen errores al no poder localizar en el workspace aquellos plug-ins que conforman las mismas.

La importación de los plug-ins se reliza a través del asistente de importación de eclipse, el cual se ha utilizado anteriormente para importar el repositorio de AFRYCA y que se despliega en el menú 'File > Import'. En esta ocasión, será necesario seleccionar la opción 'Existing Projects into Workspace' que permitirá importar proyectos existentes dentro del workspace configurado.

Importación de proyectos existentes en el workspace

Pulsando en 'Next >' se solicitará la ruta raíz en la que se buscarán los proyectos a importar. Los plug-ins de AFRYCA se encuentran en el directorio 'plugins' del proyecto general de afryca. Si se han seguido las indicaciones respecto a la ruta del repositorio, esta carpeta se encontrará en '~/afryca/git/afryca/afryca/plugins'. Al configurar un repositorio git para un proyecto de eclipse, EGit aconseja crear una carpeta para este repositorio en la cual incluir los archivos internos de git y la carpeta en la que se alojará el proyecto, siguiendo el formato '<raíz de git>/<repositorio>/<proyecto>'. Siguiendo las indicaciones de la guía, se sustituye '<raíz de git>' por '~/afryca/git', '<repositorio>' por 'afryca' y '<proyecto>' por 'afryca'. Si no se han utilizando los mismos directorios que en esta guía, aplicando los reemplazos necesarios en las rutas anteriores será posible localizar los proyectos de plug-ins fácilmente.

Al seleccionar el directorio que contiene los proyectos de plug-ins en el campo 'Select root directory' del asistente de importación de eclipse, se mostrará el listado de los proyectos contenidos en el mismo, los cuales deben ser todos importados. Para que eclipse utilice los proyectos en su ubicación actual y así sus cambios sigan siendo gestionados con git es necesario desmarcar la opción 'Copy projects into workspace'.

Importación de plugins de AFRYCA

Tras pulsar en 'Finish', todos los proyectos del directorio anterior se importarán y eclipse comenzará a reconstruir el espacio de trabajo, proceso en el cual pueden aparecer múltiples problemas de dependencias incumplidas, incompatibilidades entre versiones, etc. Usualmente estos problemas serán de dos tipos:

Ausencia de directorios necesarios

Eclipse utiliza para cada proyecto una serie de carpetas en función de su naturaleza, como 'src' para el código en los proyectos que usan código fuente, 'bin' para los binarios, etc. Al gestionar un proyecto eclipse con git puede darse el caso de que alguna de las carpetas anteriores no sea creada en el repositorio al no crear git ninguna carpeta a no ser que esta contenga al menos un archivo.

Por ejemplo, esto ocurre actualmente en el plug-in 'afryca.theme', el cual contiene el tema de AFRYCA y únicamente emplea archivos CSS y XML. Al tratarse de un proyecto de naturaleza 'plug-in', eclipse espera que contenga una carpeta 'src' en la que contendrá el código fuente, cosa que no ocurre. Para solventar este tipo de problemas, basta con crear la carpeta ausente en el proyecto una vez importado.

Para evitar que este tipo de problemas ocurran, una práctica habitual es crear en estos directorios un archivo vacío con el nombre 'DELETE.ME', los cuales se eliminarán una vez que el directorio pasa a contener algún archivo.

Dependencias incumplidas

Responde a fallos difíciles de anticipar al importar de forma masiva proyectos interconectados. No obstante, estos problemas son fácilmente subsanables en la práctica forzando la recompilación y reconstrucción de los proyectos. Algunas acciones que podrían solventar los problemas aparecidos serían:

  • Limpiar los proyectos en el menú 'Project > Clean...'.
  • Reiniciar eclipse en el menú 'File > Restart'.
  • Cerrando proyectos en el menú 'Project > Close proyect' y abrirlos a continuación en el menú 'Project > Open project'.
  • Combinar los puntos anteriores.

En ocasiones puede ser necesario realizar cada tarea múltiples veces hasta que surja efecto. Si aún probando todas las combinaciones anteriores los problemas persisten, se puede optar por una importación escalonada de los plug-ins. Para ello:

  1. Eliminar todos los proyectos a excepción del proyecto general de AFRYCA.
  2. Repetir el proceso de importación pero seleccionar en este caso un único proyecto de entre todos los plug-ins.
  3. Si el plug-in arroja algún error por dependencias incumplidas importarlas una a una hasta que los fallos de dependencias del plug-in desaparezcan.
  4. Repetir 3 y 4 hasta solventar los fallos de dependencias de todos los plug-ins actualmente importados.
  5. Si queda algún plug-in no importado volver a 2. En caso contrario el proceso habrá concluido.

Resueltos los problemas relacionados con los plug-ins solo resta importar las features. Para ello es necesario ejecutar nuevamente el asistente de importación de eclipse ('File > Import') y seleccionar la opción 'Existing Projects into Workspace'. Tras pulsar 'Next >' se empleará la carpeta 'features' del proyecto general de AFRYCA para buscar proyectos a importar. Seleccionados todos los proyectos y dejando sin marcar nuevamente la opción 'Copy projects into workspace' se puede pulsar el botón 'Finish' para importar todos los proyectos de features.

Importación de features de AFRYCA

Con esta acción el código fuente de AFRYCA queda disponible para comenzar a trabajar con él.

El producto de AFRYCA

Al hablar del producto se hace referencia al artefacto de configuración de Eclipse RCP que establece la configuración de la aplicación, incluyendo plug-ins, features, iconos, nombres de los ejecutables, etc.

El producto de AFRYCA es el punto desde el que ejecutar la aplicación tanto de modo habitual como en modo de depuración, ofreciendo además asistentes para la exportación de la aplicación a múltiples plataformas.

AFRYCA cuenta con un proyecto propio para la gestión del producto, 'afryca.product', en el cual existe un archivo de producto con idéntico nombre. Abriendo el archivo de producto se lanzara el editor de productos de eclipse, el cual permitirá realizar cambios en el mismo.

Producto de AFRYCA

Pulsando en los botones 'Launch an Eclipse application' y 'Launch an Eclipse applicacion in Debug mode' se creará una 'configuración de ejecución' basada en este producto y se lanzará AFRYCA en modo habitual o en modo de depuración respectivamente. La siguiente vez que se desee ejecutar AFRYCA, a no ser que se hayan modificado los plug-ins que conforman la aplicación, no será necesario utilizar los lanzadores anteriores, si no que será suficiente con ejecutar la configuración de ejecución creada.

Los productos pueden estar basados en plug-ins o en features. En el caso de AFRYCA se emplea un producto basado en features, siendo la feature principal 'afryca.rcp.default.feature' y el resto dependencias de la misma.

Features del producto de AFRYCA

Configuración de R

Como se ha indicado, al lanzar el producto en modo habitual o en modo de depuración, eclipse crea una 'configuración de ejecución' asociada al producto que es la que utilizará para ejecutar la aplicación. Esta configuración puede ser adaptada para configurar parámetros específicos de ejecución como parámetros java, plug-ins a incluir, argumentos de ejecución, etc.

No obstante, debe tenerse en cuenta que los cambios realizados en las configuraciones de ejecución se perderán cada vez que los cambios en el producto obliguen a su reconstrucción, por lo que cualquier valor establecido en estas configuraciones tendrá únicamente validez temporal.

Las configuraciones de ejecución son el lugar idóneo en AFRYCA para configurar el entorno estadístico R en el entorno de desarrollo. Para ello, será necesario instalar R y rJava según se indica en la guía de instalación para linux o para windows. Tras ello debe ejecutarse AFRYCA si aún no se ha realizado esta acción para que se cree su configuración de ejecución. Existiendo en eclipse la configuración de ejecución de AFRYCA, con la aplicación detenida se realizará la adaptación de su configuración de ejecución.

Para lanzar el editor de ejecuciones de configuración se debe seleccionar en el menú 'Run > Run configurations...'. Dentro de este editor será necesario seleccionar la configuración 'afryca.product' del tipo 'Eclipse Application'.

Configuración del producto de AFRYCA

Para configurar R será necesario establecer el JRI en el java.library.path y la variable de entorno R_HOME. Los usuarios de windows también necesitarán modificar la variable de entorno PATH para incluir el ejecutable de R.

La definición del JRI se realizará desde la pestaña 'Arguments' del editor, debiendo ser sustituido el valor REPLACE por el valor correspondiente.

Establecimiento de JRI de R

La variable de entorno R_HOME puede ser definida desde la pestaña 'Environments'. Téngase en cuenta que la creación o modificación de las variables de entorno únicamente será necesaria si estas no se han definido en el sistema.

Establecimiento de R_HOME

Al pulsar 'Apply' se realizarán las modificaciones indicadas y R podrá ser utilizado desde AFRYCA al ejecutar la aplicación en el entorno de desarrollo.

El modelo de aplicación de AFRYCA

Una de las principales de E4 respecto al desarrollo de aplicaciones RCP es el modelo de aplicación. El modelo de aplicación es empleado para describir la estructura y jerarquía de los elementos de la aplicación tales como ventanas, perspectivas, partes, menús, contextos, comandos, controladores, combinaciones de teclas, etc.

El modelo de aplicación de AFRYCA se encuentra definido en el archivo 'Application.e4xmi' del plug-in 'afryca.rcp'. Desde este archivo es posible modificar el modelo de aplicación de AFRYCA para incluir cualquier cambio necesario.

Modelo de aplicación de AFRYCA

El modelo de aplicación se caracteriza por su naturaleza extensible, pudiendo ser fácilmente extendido empleando procesadores de modelo o fragmentos de modelo. En AFRYCA, los diferentes plug-ins que extienden el modelo de aplicación para añadir funcionalidad hacen uso de fragmentos de modelo, los cuales por homogeneidad en la notación reciben todos el nombre 'fragment.e4xmi'.

Ejemplo de fragmento del modelo de aplicación de AFRYCA

La feature de AFRYCA

Como se ha indicado al introducir el producto, AFRYCA se construye haciendo uso de features.

Para facilitar el proceso de construcción, en AFRYCA las features se definen de forma jerárquica, incluyendo las features de nivel más general features de funcionalidad más específica. En el nivel superior de la jerarquía se encuentra la feature 'afryca.rcp.default.feature', la cual incluye de forma directa o indirecta el resto de features que conforman AFRYCA.

En concreto, 'afryca.rcp.default.feature' incluye las siguientes features:

  • afryca.rcp.feature: Funcionalidad básica.
  • afryca.ase.engine.default.feature: Engines adicionales.
  • afryca.consensusmodel.default.feature: Implementaciones de modelos de consenso.
  • afryca.behavior.default.feature: Implementaciones de comportamientos.
  • afryca.birt.feature: Soporte para BIRT.

Features de AFRYCA

El producto de AFRYCA 3 se compone de un total de 30 features, las cuales pueden dividirse entre propias, las cuales han sido desarrolladas expresamente para el framework, y de terceros, las cuales son features de Eclipse RCP utilizadas por el framework.

Propias

  1. afryca.rcp.feature: Funcionalidad básica.
  2. afryca.rcp.default.feature: Feature principal.
  3. afryca.consensusmodel.feature: Funcionalidad de modelos de consenso.
  4. afryca.consensusmodel.gui.feature: Funcionalidad gráfica de modelos de consenso.
  5. afryca.consensusmodel.default.feature: Implementaciones de modelos de conseno.
  6. afryca.ase.feature: Funcionalidad de ASE, el entorno de scripting de AFRYCA.
  7. afryca.ase.gui.feature: Funcionalidad gráfica de ASE.
  8. afryca.ase.engine.default.feature: Engines adicionales para ASE.
  9. afryca.simulation.feature: Funcionalidad de simulaciones.
  10. afryca.simulation.gui.feature: Funcionalidad gráfica de simulaciones.
  11. afryca.gdmp.feature: Funcionalidad de problemas de toma de decisión en grupo.
  12. afryca.gdmp.gui.feature: Funcionalidad gráfica de problemas de toma de decisión en grupo.
  13. afryca.fpr.feature: Funcionalidad de relaciones de preferencia difusas.
  14. afryca.fpr.gui.feature: Funcionalidad gráfica de relaciones de preferencia difusas.
  15. afryca.workspace.feature: Funcionalidad de espacio de trabajo.
  16. afryca.workspace.gui.feature:  Funcionalidad gráfica de espacio de trabajo.
  17. afryca.behavior.feature: Funcionalidad de comportamientos.
  18. afryca.behavior.gui.feature: Funcionalidad gráfica de comportamientos.
  19. afryca.behavior.default.feature: Implementaciones de comportamientos.
  20. afryca.birt.feature: Soporte para BIRT.

De terceros

  1. org.eclipse.emf.ecore.
  2. org.eclipse.emf.common.
  3. org.eclipse.rcp.
  4. org.eclipse.e4.rcp.
  5. org.eclipse.birt.osgi.runtime.
  6. org.eclipse.help.
  7. org.eclipse.birt.engine.runtime.
  8. org.eclipse.birt.chart.osgi.runtime.
  9. org.eclipse.datatools.enablement.oda.feature.
  10. org.eclipse.datatools.connectivity.oda.feature.

Exportación de AFRYCA

Como se ha indicado en esta sección, el producto de AFRYCA permite exportar el framework a diferentes sistemas operativos. Para ello, es necesario que se haya configurado el target tal y como se mencionó con anterioridad, en caso contrario únicamente será posible exportar AFRYCA para la arquitectura en uso.

La exportación es un proceso sumamente sencillo una vez definido el producto, realizándose en solo tres simples pasos.

En primer lugar debe de abrirse la pestaña 'Overview' del producto de AFRYCA y pulsar dentro de la misma la opción 'Eclipse Product export wizard'. 

Exportación del producto de AFRYCA

Lanzado el asistente de exportación, se configurarán aquellos parámetros que se consideré necesario tales como el directorio de exportación ('Directory') que es '~/afryca/export' en esta guía, o el directorio que empleará eclipse como carpeta de cada versión exportada ('Root directory'), el cual se ha establecido como 'afryca'.

Si se disponen de los plug-ins para la compilación multiplataforma en el target, el asistente mostrará como disponible la opción 'Export for multiple platforms', en caso contrario ni la opción indicada ni el botón 'Next >' podrán ser utilizados. Si no es posible exportar AFRYCA para otras plataformas o no se desea realizar una exportación multiplataforma, basta con pulsar el botón 'Finish' sin activar la opción 'Export for multiple platforms' para comenzar el proceso de exportación.

Para realizar una exportación multiplataforma, estando activada la opción 'Export for multiple platforms' se ha de pulsar el botón 'Next >' para seleccionar las plataformas deseadas de entre todas las disponibles.

Exportación para múltiples plataformas

Pulsando el botón 'Finish' comenzará el proceso de exportación para cada una de las plataformas seleccionada.