-
Notifications
You must be signed in to change notification settings - Fork 0
Entorno de desarrollo
Los siguientes son los requisitos comúnes de DSpace en su v6.0.
- Sistema Operativo Unix-like
- Oracle Java JDK 8 (ó OpenJDK 8)
- Configurarlo desde Eclipse.
- IMPORTANTE: si se instala la OpenJDK, instalar el paquete openjdk-8-jdk (no instalar openjdk-8-jre, ya que necesitamos el paquete para desarrollo).
- Apache Maven 3.0.5+
- JDK 1.6 o superior
- Internet Connection
- Apache Ant 1.8+
- PostgreSQL 9.4 o superior
- A partir de DSpace 6.x se necesita esta versión de PostgreSQL para poder instalar pgcrypto en la base de datos.
- Tomcat 8.x
- Tener en cuenta que algunas versiones de Tomcat ocasionan algunos problemas en DSpace.
Constantes:
- [dspace-source] → Directorio donde se descomprimió/clonó el código fuente de Dspace del repositorio; por ej: /home/user/dspace/DSpace_master
- [dspace] → Directorio donde se intalará el código DSpace a partir de un paquete de instalación creado a partir del fuente.
- [tomcat] → Directorio de instalación de Tomcat 8.
sudo apt-get update; sudo apt-get install git maven ant openjdk-8-jdk git postgresql-9.4 tomcat8 postgresql-contrib postgresql-contrib-9.4
Tener en cuenta que el nombre de algunos paquetes puede variar en distintas distribuciones Linux, además que pueden cambiar las versiones explícitas en el nombre del paquete.
Para poder obtener el código fuente hay 2 alternativas.
a) Descargar y descomprimir el .zip con los archivos del repositorio en Github, en el directorio [dspace-source].
Tener en cuenta que esta forma de conseguir el código fuente no nos sirve para el desarrollo a través de GIT.
b) Crear el directorio [dspace-source] y hacer un clone del repositorio sedici/DSpace en Github
~$ mkdir [dspace-source]
~$ cd [dspace-source]
~$ git clone https://github.com/sedici/DSpace.git
Mediante esta forma, podemos mantener sincronizado el código con el repositorio remoto https://github.com/sedici/DSpace.git a través de GIT.
Antes de utilizar DSpace hay que crear y configurar la base de datos.
Se crea un usuario en PostgreSQL que accederá a la base de datos de DSpace. En este caso de ejemplo, el usuario se llama "dspace_user"
~$ sudo su -c "createuser -d -P -R -S dspace_user" postgres
#Enter password for new role:
#Enter it again:
Se crea la base de datos en PostgreSQL que usará DSpace. El dueño de la misma es "dspace_user".
~$ sudo su -c "createdb -U dspace_user -O dspace_user -E UNICODE dspace_repo -h localhost" postgres
#password (de dspace_user)
Luego instalamos pgcrypto (sólo necesario para DSpace v6.0 o +)
# Login to the database as a superuser, and enable the pgcrypto extension on this database
psql -U postgres -h localhost dspace_repo -c "CREATE EXTENSION pgcrypto;"
NOTA: notar que las relaciones/tablas en la BBDD se crean (automáticamente) cuando se inicia por primera vez la aplicación de DSpace.
El directorio de instalación de DSpace contendrá todo el código de DSpace ya montado, con las dependencias resueltas y configurado, luego de ejecutar maven.
~$ cd [dspace-source]
~$ mkdir install
Las configuraciones en DSpace 5 y 6 establecen sus configuraciones en archivos diferentes. En estos archivos se colocan todas las configuraciones propias de la instancia actual de DSpace, por ejemplo: los datos de conexión a la base de datos, la dirección donde levantaremos DSpace, la configuración del servidor de correo para enviar correos desde la aplicación, etc.
Configurar todas las variables de éste archivo, que se encuentra en [dspace-source]/build.properties. Para una mejor referencia ir a la Wiki de DSpace.
Se debe crear y configurar el archivo local.cfg. Este archivo no se encuentra versionado, por lo que para crearlo debemos hacer los siguiente:
cd [dspace-source]
cp local.cfg.EXAMPLE local.cfg
### Luego debemos editar este archivo con nuestras configuraciones particulares
Para más información ir a la documentación de DSpace.
Ahora se prosigue construir el instalador de DSpace. Simplemente se ejecutan los siguientes parámetros.
~$ cd [dspace-source]
~$ mvn clean package
En caso de querer utilizar el tema Mirage2 (disponible solo para la versión 6 de DSpace) será instalar un conjunto de dependencias y agregar un conjunto de parametros al hacer el
mvn package
. Para mas información sobre Mirage2 consultar en la wiki la página Mirage2
Luego de compilar el código, se creará el directorio [DSpace-SRC]/dspace/target/dspace-installer
que contiene los archivos necesarios para instalar DSpace en nuestro sistema. En especial, se encuentra el archivo build.xml
que contiene la definición de las tareas necesarias para que ant
instale DSpace. Para ésto, debemos ejecutar lo siguiente:
# Movernos al directorio del instalador
cd [DSpace-SRC]/dspace/target/dspace-installer
ant update
Luego de una exitosa ejecución, tendremos en nuestro directorio ${dspace.dir} (generalmente [DSpace-SRC]/install
) todo el código correctamente instalado.
Al ejecutar ant update
, una de las sub-tareas que realiza durante su ejecución es realizar un backup
de algunos directorios que estaban en el directorio de instalación (lib.bak-, etc.bak-, webapps.bak-, bin.bak-). A medida que realizamos varias actualizaciones mediante ant
, se van generando de forma acumulativa ya que corresponden a distintas fechas, y van ocupando un excesivo espacio.
En un entorno de producción, los backups son útiles por si algo sale mal durante el proceso de actualización, ya que podemos reutilizarlos para volver hacia atrás y solventar cualquier inconveniente rápidamente. En cambio, en un entorno de desarrollo, los backups lo único que hacen es ocupar espacio útil.
Para eliminar estos directorios de backup ejecutar:
cd [dspace-src]/dspace/target/dspace-installer
ant clean_backups
Para hacer visible cualquier cambio realizado sobre el proyecto DSpace que vayamos realizando durante el desarrollo, es necesario recompilar el código.
Algunos repositorios, como CIC-Digital, definen algunos metadatos que no vienen con los instalados por defecto por DSpace. Es por eso que es necesario importarlos luego de la instalación de la aplicación, y así evitar futuros errores en la aplicación. Para importarlos, hay que ejecutar lo siguiente:
~$ cd [dspace]/bin
~$ ./dspace registry-loader -metadata ../config/registries/cic-types.xml
Al instalar DSpace, hay que configurar Tomcat para que levante las aplicaciones (DSpace, xoai, Solr, sword, lni, etc). Añadir dichas configuraciones en [tomcat]/conf/Catalina/localhost; cada configuración debe ser un archivo XML independiente. Leer la documentación relacionada en Apache Tomcat para mas información.
P.e.: para levantar DSpace crear el siguente XML (llamado p.e. dspace.xml):
<?xml version='1.0'?>
<Context path="/${context_name}" docBase="[dspace]/webapps/xmlui"/>
P.e: para levantar SOLR
<?xml version='1.0'?>
<Context
path="/${context_name}" /* Cualquiera que querramos para acceder a SOLR*/
docBase="[dspace]/webapps/solr"/>
El context_name corresponde a la ruta luego de la dirección del servidor. P.e. si el nombre de contexto es xmlui_cic, entonces la ruta completa a la aplicación XMLUI sería http://localhost:8080/xmlui_cic.
~$ [dspace]/bin/dspace create-administrator
Cuando instalamos Tomcat como un paquete del sistema, es necesario realizar un par de configuraciones previas a utilizar DSpace. Para mśa información leer Configuración por defecto en Tomcat.
Las siguientes son algunas configuraciones de nuestro repositorio git que pueden servirnos para tener un mejor esquema de trabajo.
Configura el nombre de usuario y tu email para que git asocie automáticamente los commits realizados con el usuario configurado.
~$ cd [dspace-source]
~$ git config --local user.name <your_name>
~$ git config --local user.email <your_email>
Configurar git para asegurarnos que cada vez que se realice un git push
se envíen los cambios relativos a la rama actual, y no a todas las ramas del repositorio (comportamiento implícito en las primeras versiones de git).
~$ cd [dspace-source]
~$ git config --local push.default simple
Con esta configuración podremos decirle a git que cada vez que vaya a escribir el mensaje de un git commit
, nos habra un editor de consola de nuestra preferencia. Por defecto usa vi. Si queremos cambiar el editor a nano, ejecutamos lo siguiente:
~$ cd [dspace-source]
~$ git config --local core.editor nano
Para favorecer un ambiente de trabajo ordenado, vamos a configurar nuestro repositorio local para que siempre que hagamos un git pull
se realice un git rebase
automáticamente. De esta manera, git tratará de hacer un rebase de nuestros commits locales sobre los commits recientemente traídos por el pull. (Fuente).
~$ cd [dspace-source]
~$ git config --local branch.master.rebase true
Ejecutando este comando git modificamos la configuración local en [dspace-source]/git/config.
El entorno de desarrollo es una de las cuestiones más importantes a considerar cuando se trabaja, ya que puede facilitarnos mucho las tareas de desarrollo, testing y colaboración.
Eclipse posee algunas variantes para el desarrollo en JAVA:
- Eclipse IDE for Java EE Developers: entorno orientado mas que nada para el desarrollo de aplicaciones web.
- Eclipse IDE for Java Developers: entorno básico para aplicaciones mas simples.
Podremos utilizar cualquiera de los dos entorno, sin embargo, el primero viene con ciertos paquetes instalados por defecto que nos será útiles, por ejemplo, herramientas para el desarrollo en JavaScript, entre varias mas.
Para instalar Eclipse disponemos de distintas opciones, entre ellas:
-
Instalar desde consola:
- Instalar (o desinstalar) desde consola usando el gestor de paquetes es una de las formas más fáciles de instalarlo, pero tenemos la contra que la aplicación se distribuye en varios lugares del sistema.
~$ sudo apt-get install eclipse
-
Instalar descargando el paquete:
- Se puede descargar el instalador o el paquete completo de la última versión de eclipse en su página de descargas. Si obtenemos el paquete completo, tendremos que descomprimir el archivo descargado y ya estaría listo para usarse. Con esta opcion localizamos todo el código en el directorio de nuestra preferencia.
~$ wget <url_to_eclipse_package>
~$ tar -xvf <eclipse_package>
~$ ./eclipse/eclipse
Eclipse puede integrarse con un servidor web local, de tal forma de levantar aplicaciones que residen en éste, pudiéndo iniciarlo, reiniciarlo y pararlo desde el IDE, además de visualizar cualquier mensaje de log relativo a la actividad en el servidor. Cualquiera de los GUI existentes en DSpace (XMLUI y JSPUI) son aplicaciones web Java y, por lo tanto, deben levantarse en un web container como Apache Tomcat que soporte código Java.
Para levantar Tomcat desde Eclipse, existen 2 maneras:
- Configurando un server runtime para Tomcat,
- Instalando Eclipse Tomcat Plugin.
El Eclipse Tomcat Plugin es un controlador simple que permite iniciar, reiniciar y parar una instancia de Tomcat. Para poder instalarlo, habría que:
- Agregar el repositorio
http://tomcatplugin.sf.net/update
como un nuevo respositorio en la sección de Help->Install New Software en Eclipse (Para agregar un nuevo "Software Site" en eclipse, leer ésta guía) - Luego, en el input de búsqueda, escribir Eclipse Tomcat Plugin.
- Seleccionar el resultado de la búsqueda, y seguir los pasos de instalación.
Una vez instalado, es necesario referenciar la instancia dónde tenemos instalados Tomcat. Para realizar ésto, ir al menu Window > Preferences, ir al panel Tomcat. En este panel configurar lo siguiente:
- Seleccionar la versión de Tomcat que estamos utilizando (p.e. Version 8.x).
- Indicar dónde se encuentra el Tomcat home (si tomcat se instaló usando apt-get, entonces el home es /usr/share/tomcatX).
- Seleccionar el Context Declaration Mode: cómo XMLUI se instaló como contexto de Catalina, entonces seleccionar Context files.
Al iniciar por primera vez eclipse, se nos preguntará dónde queremos crear nuestro workspace. En éste se guardarán información relativa a eclipse. No es necesario que sea el directorio git donde se encuentra el codigo del repositorio, sino que puede ser cualquier directorio en nuestro filesystem.
Luego, tendremos que importar los proyectos de DSpace sobre los que nos interese trabajar. Para esto usamos la opción Import en el tab de Package Explorer. Seleccionamos sólo aquellos proyectos sobre los que queremos desarrollar, por ejemplo: dspace-xmlui, dspace-api, etc.
- Sobre el panel Package Explorer, abrir el menú contextual y seleccionar Import.
- Seleccionar Maven > Existing Maven Projects.
- En el input Root Directory localizar el directorio base sobre el que se encuentra el fuente de DSpace. Luego dejar seleccionado todos los proyectos reconocidos, o importar sólo aquellos sobre los que vamos a desarrollar.
- El siguiente paso es esperar a que Eclipse termine de configurar los proyectos y baje cualquier dependencia restante.
Luego, podremos visualizar en nuestro Package Explorer todos los proyectos Maven importados.
Eclipse cuenta con varias combinaciones de teclas que permiten un desarrollo más rápido. Para ver una lista completa de todos los atajos, ver esta página en eclipse shortcuts.
Una amplia lista de IDEs pueden elegirse a la hora de desarrollar en JAVA, entre ellas:
Una vez instalado, se deben levantar las aplicaciones de DSpace, existen 2 alternativas:
ln -s ${dspace.dir}/webapps/xmlui ${TOMCAT_WEBAPPS}/xmlui
ln -s ${dspace.dir}/webapps/solr ${TOMCAT_WEBAPPS}/solr
ln -s ${dspace.dir}/webapps/oai ${TOMCAT_WEBAPPS}/oai
cat > ${TOMCAT_CONF}/Catalina/localhost/xmlui.xml
<?xml version='1.0'?>
<Context path="/xmlui" docBase="${dspace.dir}/webapps/xmlui"/>